📜  打印字符串所有唯一单词的Java程序(1)

📅  最后修改于: 2023-12-03 15:39:41.249000             🧑  作者: Mango

打印字符串所有唯一单词的Java程序介绍

本文将介绍如何编写Java程序,打印字符串中所有唯一单词的方法。

程序实现思路
  1. 定义一个HashMap,用于存储单词和它们在字符串中出现的次数。
  2. 将字符串转换为小写,以便在比较单词时不考虑大小写。
  3. 使用split()函数将字符串分割成单词。
  4. 遍历单词列表,将单词存储到HashMap中。
  5. 仅打印HashMap中值为1的键,这意味着单词只在字符串中出现了一次。
Java代码实现
import java.util.*;

public class UniqueWords {
    public static void main(String[] args) {
        String str = "Java is great. Python is also great. Java is very popular.";
        String[] words = str.toLowerCase().split("[ ,.;]+");
        Map<String, Integer> wordCounts = new HashMap<String, Integer>();

        for (String word : words) {
            Integer count = wordCounts.get(word);
            if (count == null) {
                count = 0;
            }
            wordCounts.put(word, count + 1);
        }

        for (String word : wordCounts.keySet()) {
            if (wordCounts.get(word) == 1) {
                System.out.println(word);
            }
        }
    }
}

代码解释:

  1. 我们首先将要处理的字符串定义为str。
  2. str.toLowerCase()转换为小写,以便在比较单词时不考虑大小写。
  3. split("[ ,.;]+")使用正则表达式分割字符串,并将分割后的单词存储在一个数组中。
  4. 声明一个HashMap用于存储单词和它们在字符串中出现的次数。
  5. 遍历单词数组。如果单词还没有在HashMap中,将它以及它的出现次数(0)添加到HashMap中。如果单词已经出现在HashMap中,则将它的出现次数加1。
  6. 遍历HashMap,仅打印出现次数为1的单词。
测试用例

以下是一个测试用例,它将使用上面的代码处理一个字符串并仅打印出现一次的单词。

Input: "Java is great. Python is also great. Java is very popular."
Output: 
python
also
popular
very 
总结

现在你已经知道如何编写一个Java程序,打印字符串中所有唯一单词了。只需将上面的代码添加到您的项目中,根据需要进行调整,就可以开始处理字符串了。