scanner.nextInt() 返回 java.util.NoSuchElementException
Posted
技术标签:
【中文标题】scanner.nextInt() 返回 java.util.NoSuchElementException【英文标题】:scanner.nextInt() returns java.util.NoSuchElementException 【发布时间】:2011-05-24 08:52:34 【问题描述】:这是我的代码,它应该接受用户的输入并设置 2 个 int 值。 exit 函数可以正常工作,但是当输入字符串为“5 2”时,它将 x 设置为 5,并在 y = s2.nextInt(); 处抛出 java.util.NoSuchElementException;行,即使有下一个 int。在我看到的 nextInt() 示例中,整数被空格分隔,扫描仪仍然拾取所有整数。我的有什么遗漏吗?
String exit = "-1";
Scanner s1 = new Scanner(System.in);
String input = s1.next();
Scanner s2 = new Scanner(input);
if (input.equals(exit))
Sequence.quit();
else
x = s2.nextInt();
y = s2.nextInt();
【问题讨论】:
【参考方案1】:如果您打印出您的变量ìnput
,您将看到它只包含“5” - 因为s1.next()
将停在空格处。
类似这样的:
String exit = "-1";
Scanner s1 = new Scanner(System.in);
int x = s1.nextInt();
if (x==-1)
Sequence.quit();
else
y = s1.nextInt();
【讨论】:
我明白了。我滚动浏览了 Scanner 类,发现更改 input = s2.next();输入 = s2.nextLine();解决了问题以上是关于scanner.nextInt() 返回 java.util.NoSuchElementException的主要内容,如果未能解决你的问题,请参考以下文章
我在Scanner.nextInt()之后输入一个Scanner.nextLine()来使用新行,但它不能正常工作[重复]