当前位置: 首页 > 面试题库 >

Java扫描器hasNext()不会返回false

上官凯歌
2023-03-14
问题内容

我试图从用户连续读取输入,直到用户键入退出为止。我仅通过输入“
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()

相反,我建议抓住下一个值作为字符串,然后检查它是否与整数格式匹配。如果是这样,则将其转换,否则,请根据需要进行处理。



 类似资料:
  • 我写了这个正则表达式

  • 我有一个类,它创建多个对象,并将它们放入中,如下所示: 我有一个应用程序,它从控制台扫描输入“add”,如果找到,就调用方法,如下所示: 应用程序应该允许用户输入“add”,但在调用方法后,将出现错误“no line found”。 我猜这是因为方法中的没有关闭,然后在需要时重新打开。这是程序的问题吗?如果是,我该如何修复它? 请注意,这个程序还没有完成,因为我将添加一个出售这些股票的销售方法。这

  • 我正在尝试编写使用Scanner类从用户那里获取输入的代码。但是hasNext()、hasNextInt()和hasNextLine()每次都会运行无限循环。

  • 问题内容: 我正在用Java写一个简单的程序,它需要从文本文件中读取数据。但是,我在计算行数时遇到了麻烦。对于一个简单的Google搜索来说,这个问题似乎已经足够普遍了,但是我什至没有在搜索正确的东西。 我正在学习的教科书建议要计算文本文件中的行数,您应该执行以下操作: 在我看来,这是问题所在。我认为无限运行。我在代码中使用的数据文件肯定具有有限数量的数据行。 我该怎么办? 问题答案: 第一次调用

  • 对不起,我的问题,但我是一个初学者。请你能支持与扫描仪相关的关心。 “背景”:我写了一些研究扫描仪的代码: 我有一个例外:找不到行。这就是我在输出中得到的结果: 任务:运行失败今天是哪一天?线程“main”java.util.NosuchelementException异常:在java.base/java.util.Scanner.NextLine(Scanner.java:1651)和demoo

  • 我这里有两个代码块。一个扫描器正确地等待用户输入,另一个则直接通过它并调用,返回。下面是工作的块: 下面是没有的块: 这两个都是单独的类,并且是从另一个类中的main方法调用的。基本上,调用,后者又调用某个Player类的方法...这是非工作代码所在的地方。程序中是否有不适合接受输入的时候?我的印象是,任何时候我需要用户输入,我都可以使用这种方法。谢谢!