【问题标题】:Why does my scanner hasNext("string") method prompt for input?为什么我的扫描仪 hasNext("string") 方法提示输入?
【发布时间】:2017-06-06 06:23:54
【问题描述】:

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

我的程序立即执行的操作是让我输入一些内容(在提示输入之前),然后弹出“输入除退出以外的任何内容”的提示,并且程序正常运行。但是,我不想要第一个空白输入。为什么会弹出这个问题,我该如何解决?

【问题讨论】:

    标签: java.util.scanner next


    【解决方案1】:

    Scanner-API

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

    因此,当输入一行时,您将进入您的 while-body。

    这样写

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多