Java scanner count lines in file
我有一个问题,我试图创建一个应用程序,计算文件中符号的所有出现...扫描方法"nextLine"停在一个空行...是否有办法让它继续前进,直到它到达 真正的文件结束?
简而言之:我可以在文件中获得REAL行数吗?
先感谢您!
你可以使用一个循环:
1 2 3 4 5 | int count = 0; while (scanner.hasNextLine()) { count++; scanner.nextLine(); } |
所以我一直在研究这个问题。我最近一直在反对它,而我正在为我正在上课的Java编写一个行计数程序。
扫描器类执行此操作的原因是因为scanner.next()和scanner.nextLine()返回标记,它们由分隔符分隔。默认情况下,分隔符是空格。所以发生的事情是,当你调用scanner.hasNext()或scanner.hasNextLine()时,它会查看下一个分隔符后是否有令牌。当文件以换行符结尾时,之后没有令牌,因此hasNext()和hasNextLine()返回false。
据我所知,要做你想做的事,你需要计算分隔符的数量,这在Martinus的答案中得到了更好的处理。另见AFinkelstein的回答。
请参阅Scanner.hasNextLine(),您应该在循环条件中使用它。如果它能更好地满足您的需求,还有一个Scanner.hasNext()。