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

mnemlml8  于 2023-05-21  发布在  Java
关注(0)|答案(1)|浏览(140)

我意识到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();
}

我的程序马上做的是它让我输入一些东西(在提示输入之前),然后提示“输入除退出之外的任何东西”弹出,程序正常工作。但是,我不希望第一个空白输入。为什么会弹出这个问题,我该如何修复它?

x4shl7ld

x4shl7ld1#

Scanner-API
next()和hasNext()方法以及它们的基元类型伴随方法(如nextInt()和hasNextInt())首先跳过任何与分隔符模式匹配的输入,然后尝试返回下一个标记。hasNext和next方法都可以阻止等待进一步的输入。hasNext方法是否阻塞与其关联的下一个方法是否阻塞没有关系。
因此,当输入一行时,您将进入while-body。
写一些类似于

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

相关问题