我正在尝试使用扫描仪输入一些东西,但出于某种原因,扫描仪让我失望。
我运行了以下代码,没有任何复杂的内容:
while(scan.hasNextLine())
{
System.out.println(scan.nextLine());
}
就像测试床一样,确保一切正确输入。如果我复制我的测试材料,请说
5
4
3
2
1
输出省略了最后一行。我很确定这是因为如果后面有一个字符串,nextLine将只返回一个字符串,即使它是空的,但我需要它以这种方式工作,以便最终输入数据工作。有谁知道我怎么解决这个问题?我唯一的猜测是要么使用其他扫描仪,要么以某种方式在输入的末尾附加一个空字符串,但我不知道如何做第二个,我不认为不同的扫描仪类似的东西会工作。提前谢谢!
答案 0 :(得分:2)
你的最后一行可能没有“输入”字符。因此它不会将其视为行尾。尝试
> 5
> 4
> 3
> 2
> 1
>
答案 1 :(得分:2)
我刚刚在Eclipse上试过这个。我没有复制Daryl Teo的建议;与您在.txt中提供的输入相同。直接进入标准输入,并将Scanner
指向输入文件,得到了您想要的结果,即
5
4
3
2
1
请您按照评论中的要求发布更多代码吗?您所遇到的错误目前似乎与您的Scanner
无关,听起来很奇怪。