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

Java 如何使用bufferedreader和treeset显示文本中不同单词的数量?,java,arrays,string,oop,treeset,Java,Arrays,String,Oop,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 l

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

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());
}
导入java.io.BufferedReader;
导入java.io.InputStreamReader;
导入java.util.Set;
导入java.util.TreeSet;
导入java.io.*;
公共班机{
公共静态void main(字符串[]args)引发IOException{
弦线;
字符串[]字=新字符串[100];
Set s=新树集();
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
而((line=br.readLine())!=null){
文字=行。拆分(\\s+);
for(int i=0;i

}您可以这样做:

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

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

好吧,
“”。split(\\s+“”)
新字符串[]{'}
。你可能需要处理那个特殊的案子。对不起,我怎么处理那个案子?