Java扫描程序检测空行?

时间:2012-04-22 08:21:14

标签: java file-io java.util.scanner

我试图让扫描仪或缓冲读卡器尝试检测空白线时遇到很多麻烦。例如,如果我有一个包含以下内容的文件:

there
cat
dog
(BLANK LINE)

如果我这样做:

while( scan.hasNextLine() )
{
String line = scan.nextLine();
...
...
}

扫描仪没有拿起空行。我也尝试使用缓冲读卡器,但我遇到了这个问题。是否有某种方式扫描仪可以返回""每当它找到这样的空白行?干杯

1 个答案:

答案 0 :(得分:3)

您输入的行数与\n个字符一样多。鉴于输入

"there\ncat\ndog\n"

下一行将被正确划分为

"there\n"
"cat\n"
"dog\n"

(换句话说,没有第四个空行,因为它没有被\n终止。)

换句话说,在读取"dog\n"之后,扫描仪(或缓冲读取器)已达到EOF,甚至没有空行返回。 (请注意,返回行时,将删除换行符。)

因此,由于这是预期的行为,我不知道最简单的修复是什么。我怀疑解决这个问题的最好方法就是在输入中附加一个\n,这样循环就会运行一次额外的迭代。