字数统计给出的计数与原始计数不同

时间:2015-06-08 10:17:15

标签: java android word

我在计算文件中的字数时遇到问题。我正在采取的方法是,当我看到空格或新线时,我知道要算一个字。

问题在于,如果段落之间有多行,那么我最终也将它们视为单词。如果您查看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>

我应该如何实现这一目标。

任何帮助都会对我感激不尽

2 个答案:

答案 0 :(得分:2)

在这种情况下附上你的阅读:

if(!Character.isWhitespace(sc.next().charAt(0)))
    count++

或者甚至更好:

if(!sc.next().isEmpty())
    count++

答案 1 :(得分:0)

如果sc.next()是空字符串,检查怎么样?如果是新行,我会认为它是“”。然后,如果它确实是你抓住的新线,不要增加计数。