Java扫描仪挫折

时间:2017-02-24 17:09:03

标签: java input java.util.scanner

我有以下方法:

private String doEntryScan(InputStream stream)
{
    try (Scanner scanner = new Scanner(stream)) // Reading from System.in
    {
        String readString = scanner.nextLine();
        if (readString.isEmpty())
        {
            readString = "\n";
        }
        scanner.nextLine(); //consume carriage returns if they remain
        scanner.close();
        return readString;
    }
}

这个想法是用户可以按Enter键接受默认值。或者他们可以输入一些东西如果我包含该行

scanner.nextLine(); //consume carriage returns if they remain

此方法挂起,可能等待更多输入。如果我没有那条线,下次调用此方法时会收到NoSuchElementException。我假设这是因为流中有回车符。

那么如何解决这个问题呢? scanner.hasNext()没有帮助,因为它有时候"有时"块。 顺便说一下,实际上InputStream是System.in。

0 个答案:

没有答案