我在计算文件中的字数时遇到问题。我正在采取的方法是,当我看到空格或新线时,我知道要算一个字。
问题在于,如果段落之间有多行,那么我最终也将它们视为单词。如果您查看readFile()
方法,就可以看到我在做什么。
你能帮助我并指导我如何解决这个问题吗?
示例输入文件(包括空行):
word word word
word word
word word word
我尝试了以下代码并能够打印单词数量。
File file = new File("sample.txt");
Scanner sc = new Scanner(new FileInputStream(file));
int count=0;
while(sc.hasNext()){
sc.next();
count++;
}
System.out.println("Number of words: " + count);
但是在一段时间内,它给的数字计数是不同的。我检查了Ms Office中的单词计数和语法值(上面的代码给出了错误的单词计数,因为它计算了所有的样式,调整等。)< / p>
我应该如何实现这一目标。
任何帮助都会对我感激不尽
答案 0 :(得分:2)
在这种情况下附上你的阅读:
if(!Character.isWhitespace(sc.next().charAt(0)))
count++
或者甚至更好:
if(!sc.next().isEmpty())
count++
答案 1 :(得分:0)
如果sc.next()
是空字符串,检查怎么样?如果是新行,我会认为它是“”。然后,如果它确实是你抓住的新线,不要增加计数。