为什么我的扫描仪有hasNext(“string”)方法提示输入?

时间:2017-01-21 09:16:07

标签: java.util.scanner next

我意识到hasNext()用于检查是否会有下一个输入,但我的hasNext会出于某种原因提示输入。这是我的代码:

Scanner sc = new Scanner(System.in);

while (!sc.hasNext("quit")) {
    System.out.println("Type anything other than quit to keep inputting. ");
    sc.nextLine();
}

我的程序正确执行的是它让我输入内容(在输入提示之前),然后弹出“键入除退出之外的任何内容”的提示,程序正常运行。但是,我不想要第一个空白输入。为什么弹出这个,我该如何解决?

1 个答案:

答案 0 :(得分:0)

Scanner-API

  

next()和hasNext()方法及其原始类型的伴侣   方法(如nextInt()和hasNextInt())首先跳过任何输入   匹配分隔符模式,然后尝试返回下一个   令牌。 hasNext和next方法都可能阻止等待进一步   输入。 hasNext方法块是否与or无关   不会阻止其相关的下一个方法。

因此,当您输入一行时,您将进入您的身体。

写点像

String next = "";
while (!next.equals("quit")) {
    System.out.println("Type anything other than quit to keep inputting. ");
    next = sc.nextLine();
}