Java 在Scanner类中使用varargs

Java 在Scanner类中使用varargs,java,string,int,Java,String,Int,我有一个问题,我需要从用户那里获取一系列输入(整数)。如果输入可以是变量,则挑战不能使用任何类型的数组列表、哈希映射、映射或链接哈希映射等 所以我想到了Var args 我们可以在Scanner类中获取输入变量args吗?我试过这样的东西,但不起作用 class Caseone { public void inputNumbers(int ... args) { for(int x: args) {

我有一个问题,我需要从用户那里获取一系列输入(整数)。如果输入可以是变量,则挑战不能使用任何类型的数组列表、哈希映射、映射或链接哈希映射等

所以我想到了Var args

我们可以在Scanner类中获取输入变量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);


    }

}

您可以阅读案例中的整行内容并自行解析。在此处使用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);
}

您可以读取下一个整数,直到输入流有任何:

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等)的不同,程序将使用一个数组(与var args兼容)。您知道用户将提供多少int吗?@SSP Nope。它是一个变量。还有其他方法吗?@ernest_k,因为输入可以是可变的。如何分配数组长度?如何知道输入已结束。
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(' ');
}