计算文件中的单词数

Ton*_*ony 7 java algorithm io loops

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

问题是,如果我在段落之间有多行,那么我最终也将它们视为单词.如果你看一下readFile()方法,你可以看到我在做什么.

你能帮助我并指导我如何解决这个问题吗?

示例输入文件(包括空行):

word word word
word word

word word word
Run Code Online (Sandbox Code Playgroud)

tan*_*eng 13

您可以使用带有FileInputStream的Scanner而不是带有FileReader的BufferedReader.例如:-

File file = new File("sample.txt");
try(Scanner sc = new Scanner(new FileInputStream(file))){
    int count=0;
    while(sc.hasNext()){
        sc.next();
        count++;
    }
System.out.println("Number of words: " + count);
}
Run Code Online (Sandbox Code Playgroud)

  • 上面的代码给出了错误的单词计数,因为它计算了所有的样式,调整等.....只需用循环修改循环中的代码`String word = sc.next(); if(word.indexOf("\\")== - 1)count ++;`这将给出更精确的计数.... (3认同)

Bri*_*nts 10

我会稍微改变你的方法.首先,我将使用a BufferedReader来逐行读取文件文件readLine().然后使用空格分隔每一行,String.split("\\s")并使用结果数组的大小来查看该行上有多少个单词.要获得字符数,您可以查看每行或每个拆分字的大小(取决于您是否要将空格计为字符).