扫描仪永远不会停止读取输入

时间:2014-01-19 00:18:52

标签: java.util.scanner

我只是试图从控制台读取整数(用空格分隔,例如:“6 9 20”)并将它们转换成数组供以后使用。但是,使用我目前编写的代码,我的扫描仪对象永远不会停止读取我的输入。我觉得扫描仪对象根本不知道何时停止输入,但我希望它在我按下Enter后立即停止阅读。我在网站上广泛搜索了一个确切的答案,但无济于事。

这是我的代码:

        int[] mcNug = new int[5];

        Scanner scanner = new Scanner(System.in);
        List list = new ArrayList<Integer>();
        int i = 0;
        while(scanner.hasNextInt() && scanner.hasNext())
        {
          list.add(scanner.nextInt());
          mcNug[i] = (int) list.get(i);
          i++;
          scanner.next();
        }

1 个答案:

答案 0 :(得分:0)

使用nextLine()

while( scanner.hasNextLine() ){
  String line = scanner.nextLine();
  String[] numbers = line.split("\\s+");
  ... do something with numbers array ..
}