我试图让扫描仪或缓冲读卡器尝试检测空白线时遇到很多麻烦。例如,如果我有一个包含以下内容的文件:
there
cat
dog
(BLANK LINE)
如果我这样做:
while( scan.hasNextLine() )
{
String line = scan.nextLine();
...
...
}
扫描仪没有拿起空行。我也尝试使用缓冲读卡器,但我遇到了这个问题。是否有某种方式扫描仪可以返回""每当它找到这样的空白行?干杯
答案 0 :(得分:3)
您输入的行数与\n
个字符一样多。鉴于输入
"there\ncat\ndog\n"
下一行将被正确划分为
"there\n"
"cat\n"
"dog\n"
(换句话说,没有第四个空行,因为它没有被\n
终止。)
换句话说,在读取"dog\n"
之后,扫描仪(或缓冲读取器)已达到EOF,甚至没有空行返回。 (请注意,返回行时,将删除换行符。)
因此,由于这是预期的行为,我不知道最简单的修复是什么。我怀疑解决这个问题的最好方法就是在输入中附加一个\n
,这样循环就会运行一次额外的迭代。