Scanner.next()和hasNext()在从控制台读取时创建无限循环

时间:2016-10-05 01:33:16

标签: java

我正在尝试使用Scanner类来读取用户的几个输入。每个输入都由一个空格分隔,并且应该在一行上。

首先,我尝试在提示后立即获取其余部分:

Scanner scan = new Scanner(System.in);
System.out.print("Enter inputs: ");
String input = scan.next();
System.out.println(input);

然而,当我输入(例如)“5 6 7”时,仅输出5。这是预期的,因为默认情况下扫描仪中的标记由空格划分。但是当我尝试

Scanner scan = new Scanner (System.in);
System.out.print("Enter inputs: ");
String input = "";
while (scan.hasNext)
     input += scan.next();

它进入一个循环,无论我输入什么,无论是数字,字母还是新行,它都会继续接受输入而不是继续前进。我不明白为什么会这样做,因为它似乎与我在网上找到的无数例子没什么不同。

大概,我的问题是,你如何停止hasNext()循环?

编辑:为了澄清,它应该只采取数字输入,所以我不能采取像“退出”这样的另一个短语。

0 个答案:

没有答案