Java扫描程序计数文件中的行

时间:2013-09-19 18:50:46

标签: java java.util.scanner

我有一个问题,我试图创建一个应用程序,计算文件中符号的所有出现...扫描方法“nextLine”停在一个空行...有没有办法让它继续它到达文件的真正结尾?

简而言之:我可以在文件中获得真实的行数吗?

提前谢谢!

3 个答案:

答案 0 :(得分:7)

您可以使用循环:

int count = 0;
while (scanner.hasNextLine()) {
    count++;
    scanner.nextLine();
}

count将包含多行。

答案 1 :(得分:1)

所以我一直在研究这个问题。我最近在用Java编写一个用于I类课程的行计数程序时遇到了它。

scanner类执行此操作的原因是因为scanner.next()和scanner.nextLine()返回标记,这些标记由分隔符分隔。默认情况下,分隔符为whitespace。所以发生的事情是,当你调用scanner.hasNext()或scanner.hasNextLine()时,它会查看下一个分隔符后是否有令牌。当文件以换行符结尾时,之后没有令牌,因此hasNext()和hasNextLine()返回false。

据我所知,做你想做的事情你需要计算分隔符的数量,这在Martinus的answer中得到了更好的处理。另见AFinkelstein的answer

答案 2 :(得分:0)

请参阅Scanner.hasNextLine(),您应该在循环条件中使用它。如果它能更好地满足您的需求,还有一个Scanner.hasNext()