如何使用 bufferedreader 和 treeset 显示文本中不同单词的数量?

How can I show the number of different words from a text using bufferedreader and treeset?

我尝试过类似的方法,但我认为它也会计算空行。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Set;
import java.util.TreeSet;
import java.io.*;
public class Main {
   public static void main(String[] args)throws IOException {
      String line;
    String[] words = new String[100];
    Set<String> s = new TreeSet<String>();
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    while ((line = br.readLine()) != null) {
        words = line.split("\s+");
        for (int i = 0; i < words.length; ++i) {
            s.add(words[i]);
        }
    }
    System.out.println(s.size());
}

}

你可以这样做:

line = line.trim();
if(!line.isEmpty())
{
  words = line.split("\s+");
  ...
}

这将处理空行或 "blank" 行(仅包含空格的行)。它还将处理以一个或多个空格开头的非空行,因为这些也可能导致空字符串。