【问题标题】:Replace duplicate senteces in text [duplicate]替换文本中的重复句子[重复]
【发布时间】:2016-11-04 10:53:17
【问题描述】:

我有一个很大的句子列表,其中一些彼此相似但有点不同。 类似:

[单词1] [单词2] [单词3]

[word1] [word3]

[word1] [word2] [word3] [word4]

我想删除“重复”,只得到一句话。 只是问在java中是否可能?

【问题讨论】:

  • 不确定我是否在关注。预期的输出是什么?
  • 我有 10k 个彼此相似的句子列表,我希望得到大约 1k 个没有重复的句子(其中一些有 5 个副本,一些 20 个)每个句子一个

标签: java string text


【解决方案1】:

你可以这样做

for (int i = 0; i < words.length; i++)
{
    for (int j = 0; j < words.length; j++)
    {
         if (words[i].equals(words[j]))
         {
         if (i != j)
         words[i] = "";

         }
     }
}

【讨论】:

  • 更好的方法是用结果创建一个新数组,而不是用空字符串覆盖当前数组
【解决方案2】:

将列表添加到集合中。集合不会有重复项。请参阅下面的代码..

    List<String> collectionWithDuplicates = new ArrayList<>();

    Set<String> collectionWithoutDuplicates = new HashSet<>();

    collectionWithoutDuplicates.addAll(collectionWithDuplicates);

【讨论】:

    【解决方案3】:

    在 Java 8 中

     List<String> newList = oldList.stream().distinct().collect(Collectors.toList());
    

    【讨论】:

      猜你喜欢
      • 2018-06-30
      • 2021-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多