Java程序:去除给定句子中的所有重复单词


在这篇文章中,我们将学习如何使用Java去除给定句子中的重复单词。第一种方法使用Java流来去除重复项,并使用distinct()Collectors.joining()方法将单词重新组合成句子。第二种方法使用Set自动过滤重复单词,并使用StringJoiner将单词重新组合成句子。两种方法都将得到一个只包含唯一单词的句子。

不同的方法

以下是去除给定句子中所有重复单词的不同方法:

使用Java流

以下是使用Java流从给定句子中去除所有重复单词的步骤:

  • 首先,我们将从java.util包导入Arrays,以及从java.util.stream包导入Collectors
  • 之后,我们将定义一个包含重复单词的字符串句子。
  • 我们将使用split()方法将句子分成单个单词。
  • 之后我们将应用distinct()过滤掉重复的单词。
  • 使用joining()方法将不同的单词重新组合成句子。
  • 打印最终没有重复单词的句子。

示例

以下是使用Java流从给定句子中去除所有重复单词的Java程序:

import java.util.Arrays;
import java.util.stream.Collectors;
public class Demo{
   public static void main(String[] args){
      String my_str = "This is a is sample a sample only.";
      my_str = Arrays.stream(my_str.split("\s+")).distinct().collect(Collectors.joining(" "));
      System.out.println(my_str);
   }
}

输出

This is a sample only.

使用Set

以下是使用Set从给定句子中去除所有重复单词的步骤:

  • 首先,我们将导入所需的类,例如HashSetStringJoiner,它们都位于java.util包中。
  • 之后,我们将定义一个包含重复单词的句子。
  • 我们将使用split()方法将句子分成单词,并将每个单词存储在Set中以自动删除重复项。
  • 我们将使用StringJoiner将不同的单词重新组合成句子。
  • 最后,打印最终没有重复单词的句子。

示例

以下是使用Set从给定句子中去除所有重复单词的Java程序:

import java.util.HashSet;
import java.util.Set;
import java.util.StringJoiner;
public class RemoveDuplicates {
    public static void main(String[] args) {
        String my_str = "This is a is sample a sample only.";
        String[] words = my_str.split("\s+");       
        Set uniqueWords = new HashSet<>();
        StringJoiner result = new StringJoiner(" ");        
        for (String word : words) {
            if (uniqueWords.add(word)) {
                result.add(word);
            }
        }        
        System.out.println(result.toString());
    }
}

输出

This is a sample only.

更新于:2024年10月23日

593 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告