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

回到顶部