如何使用 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" 行(仅包含空格的行)。它还将处理以一个或多个空格开头的非空行,因为这些也可能导致空字符串。
我尝试过类似的方法,但我认为它也会计算空行。
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" 行(仅包含空格的行)。它还将处理以一个或多个空格开头的非空行,因为这些也可能导致空字符串。