我试过这样的方法,但我认为它也会计算空行。
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+");
...
}
这将处理空行或 "空白 "行(只包含空格的行)。它也会处理以一个或多个空格开始的非空行,因为这些也会导致空字符串。