在一行中获取多个输入,直到用户按Enter键

时间:2014-11-28 21:12:23

标签: java java.util.scanner

我想做的是:

  

2 (测试用例数)

     

4 7 8 15 16 (测试案例1)

     

这里将输出,例如将打印最大数量

     

7 97 1 2 9 (测试案例2)

     

此处再次输出

我会在每个测试用例中都有一些陈述,直到用户按 Enter 按钮。我看到了一些类似的问题,但我尝试过的解决方案都没有用。

这是我最后尝试过的:

Scanner cin = new Scanner(System.in);
int test = Integer.parseInt(cin.nextLine());

for (int k = 0; k < test; k++) {
    while (cin.next() != "\\n") {
        int number = cin.nextInt();
        //do something
    }
    //print output
}

1 个答案:

答案 0 :(得分:2)

您可以读取整个输入行,然后创建一个新的Scanner来读取此行中的整数:

Scanner cin = new Scanner(System.in);
int test = Integer.parseInt(cin.nextLine());

for (int k = 0; k < test; k++) {
    String line  = cin.nextLine();
    Scanner lineScan = new Scanner(line);
    while (lineScan.hasNextInt()) {
        // print number
        System.out.println(lineScan.nextInt());
    }
    //print output
}