Принимая варагс в классе сканера - PullRequest
0 голосов
/ 01 октября 2019

У меня есть проблема, когда мне нужно взять серию входных данных (целых чисел) от пользователя. Там, где входные данные могут быть переменными, Challenge не может использовать любой тип списка массивов, хэш-карту, карту или связанную хэш-карту и т. Д.

Поэтому я подумал о Var-args.

Можем ли мы взять вводvar-args в классе сканеров? Я пробовал что-то подобное, но это не работает.

class Caseone
{
     public void inputNumbers(int ... args)
     {

            for(int x: args)
            {
                System.out.print(x);
            }

     }
}
public class Tryon {

    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
          Caseone obj = new Caseone();
          System.out.println("Input Please");
          int m = in.nextInt();
          obj.inputNumbers(m);


    }

}

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Вы можете прочитать следующее целое число, пока входной поток не будет иметь:

System.out.println("Input Please");
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
  int next = in.nextInt();
  System.out.print(next);
  System.out.print(' ');
}

Программа может быть завершена различными способами , в зависимости от среды (ОС, IDE и т. Д.).)

0 голосов
/ 01 октября 2019

Вы можете прочитать всю строку в кейсе и разобрать ее самостоятельно. Используйте nextLine вместо nextInt здесь. Как

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.println("Input Please");
    List<Integer> result = Arrays.stream(in.nextLine().split("\\s+"))
            .map(Integer::parseInt)
            .collect(Collectors.toList());
    System.out.println("you have " + result.size() + " of ints: " + result);
}

будет вести себя как

Input Please
> 1 2 3 4 5 6
you have 6 of ints: [1, 2, 3, 4, 5, 6]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...