java - 如何使用 bufferedreader 和树集显示文本中不同单词的数量?

标签 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 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+");
  ...
}

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

关于java - 如何使用 bufferedreader 和树集显示文本中不同单词的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61874669/

相关文章:

string - 为什么 jq --raw-output 参数无法从 @csv 输出中删除引号?

Java 邮政地址解析器

java - 如何使用常量输入多个@CrossOrigin?

javascript - 使用 javascript (jquery) 使用 HTTP Get 获取 JSON 数组

c++ - 如何在 C++ 中动态分配连续的二维数组?

java - 如何从 Java 的标准输入读取整数数组?

java - 读入(从 std in)不同行上的整数/整数列表 Java

java - 如何在 Android 中设置带有特定步骤的进度条?

Java .charAt(i) 比较问题

java - 删除重复字符串 |正则表达式 |模式匹配器