最后一行输入未在Java Scanner Class中扫描

时间:2012-01-06 05:27:03

标签: java java.util.scanner

我正在尝试使用扫描仪输入一些东西,但出于某种原因,扫描仪让我失望。

我运行了以下代码,没有任何复杂的内容:

while(scan.hasNextLine())
    {
        System.out.println(scan.nextLine());
    }

就像测试床一样,确保一切正确输入。如果我复制我的测试材料,请说

5
4
3
2
1

输出省略了最后一行。我很确定这是因为如果后面有一个字符串,nextLine将只返回一个字符串,即使它是空的,但我需要它以这种方式工作,以便最终输入数据工作。有谁知道我怎么解决这个问题?我唯一的猜测是要么使用其他扫描仪,要么以某种方式在输入的末尾附加一个空字符串,但我不知道如何做第二个,我不认为不同的扫描仪类似的东西会工作。提前谢谢!

2 个答案:

答案 0 :(得分:2)

你的最后一行可能没有“输入”字符。因此它不会将其视为行尾。尝试

> 5
> 4
> 3
> 2
> 1
> 

答案 1 :(得分:2)

我刚刚在Eclipse上试过这个。我没有复制Daryl Teo的建议;与您在.txt中提供的输入相同。直接进入标准输入,并将Scanner指向输入文件,得到了您想要的结果,即

5
4
3
2
1

请您按照评论中的要求发布更多代码吗?您所遇到的错误目前似乎与您的Scanner无关,听起来很奇怪。