使用HashSet实现一个文本分析程序,能够读取一段文本,统计并显示文本中所有不重复的单词
5条回答 默认 最新
关注让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供。
如果还有疑问可以点击头像关注私信或评论。如果答案让您满意,请采纳、点赞、关注,非常感谢!
使用HashSet实现文本分析程序
要使用HashSet实现一个文本分析程序来统计并显示文本中所有不重复的单词,可以按照以下步骤进行:
Java实现方案
import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class TextAnalyzer { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入要分析的文本:"); String text = scanner.nextLine(); // 使用HashSet存储不重复的单词 Set<String> uniqueWords = new HashSet<>(); // 分割文本为单词(简单分割,实际可能需要更复杂的处理) String[] words = text.split("[\\s,.!?;:]+"); // 将单词添加到HashSet中(自动去重) for (String word : words) { if (!word.isEmpty()) { uniqueWords.add(word.toLowerCase()); // 忽略大小写 } } // 输出结果 System.out.println("\n文本中的不重复单词:"); System.out.println("共找到 " + uniqueWords.size() + " 个不重复单词"); System.out.println("单词列表:"); for (String word : uniqueWords) { System.out.println(word); } } }程序执行流程

程序说明
- HashSet特性:HashSet会自动去除重复元素,因此非常适合用于统计不重复单词
- 文本分割:使用正则表达式
[\\s,.!?;:]+分割文本,可以处理空格和常见标点符号 - 大小写处理:将所有单词转换为小写,确保"Hello"和"hello"被视为同一个单词
- 空字符串过滤:检查分割后的单词是否为空,避免统计空字符串
扩展建议
如果需要更精确的文本分析,可以考虑以下改进:
- 使用更复杂的正则表达式处理各种边界情况
- 添加停用词过滤(如"the", "a", "an"等常见但不重要的词)
- 统计单词出现频率(需要使用HashMap而不是HashSet)
- 支持从文件读取文本而不仅是控制台输入
示例运行
输入:
Hello world! This is a test. Hello again, world.输出:
文本中的不重复单词: 共找到 6 个不重复单词 单词列表: a world is this again hello test本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报