Java扫描器hasNext()不会返回false
我试图从用户连续读取输入,直到用户键入退出为止。我仅通过输入“
quit”进行测试,但console.hasNext()似乎未返回false。实际上,似乎该程序在第7行(hasNext()行)上被阻止。有任何想法吗?
boolean bool = true; while (bool) {
System.out.println("Type 'quit':");
Scanner console = new Scanner(System.in);
if (console.next().equals("quit")) {
System.out.println("You typed quit");
System.out.println("check: " + console.hasNext()); // This line doesnt print
bool = false;
}
}
回答:
如果将your
Scanner
声明为System.in
,它将询问System.in
是否要接收下一个值。然后,in
该类将等待用户输入内容,然后返回true。
保留hasNext()
文件之类的东西,其中输入大小是固定的。这样,当Scanner
查询文件时,它具有一个确定hasNext()
。
相反,我建议抓住下一个值作为字符串,然后检查它是否与整数格式匹配。如果是这样,则将其转换,否则,请根据需要进行处理。
以上是 Java扫描器hasNext()不会返回false 的全部内容, 来源链接: utcz.com/qa/397511.html