Java Scanner hasNext()不';不要返回false
我正在尝试连续读取用户输入,直到用户退出。我只是通过键入'quit'来测试它,但console.hasNext()似乎没有返回false。实际上,程序似乎在第7行(hasNext()行)被阻塞。有什么想法吗Java Scanner hasNext()不';不要返回false,java,java.util.scanner,Java,Java.util.scanner,我正在尝试连续读取用户输入,直到用户退出。我只是通过键入'quit'来测试它,但console.hasNext()似乎没有返回false。实际上,程序似乎在第7行(hasNext()行)被阻塞。有什么想法吗 boolean bool = true; while (bool) { System.out.println("Type 'quit':"); Scanner console = new Scanner(System.in);
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;
}
}
如果您的
扫描仪
在中声明为System.in,它将在
中询问System.in是否有下一个要接收的值。类中的将等待用户输入内容,然后返回true
保留hasNext()
用于文件等输入大小固定的对象。这样,当Scanner
查询文件时,它有一个明确的hasNext()
相反,我建议将下一个值作为字符串抓取,然后检查它是否匹配整数格式。如果是,则转换它,否则,按您喜欢的方式处理它