+-
如何在Java中消除String中的重复单词?
我有一个字符串的ArrayList,它包含如下记录:

this is a first sentence
hello my name is Chris 
what's up man what's up man
today is tuesday

我需要清除此列表,以便输出不包含重复的内容.在上面的例子中,输出应该是:

this is a first sentence
hello my name is Chris 
what's up man
today is tuesday

正如你所看到的,第3个字符串已被修改,现在只包含一个语句,而不是其中两个.
在我的列表中有一种情况,有时String是正确的,有时它会加倍,如上所示.

我想摆脱它,所以我想迭代这个列表:

for (String s: myList) {

但是我找不到消除重复的方法,特别是因为每个字符串的长度没有确定,所以我的意思是可能有记录:

this is a very long sentence this is a very long sentence

或有时短的:

single word singe word

可能有一些原生java函数吗?

最佳答案
假设String只重复两次,并且在示例中间有空格,则以下代码将删除重复:

for (int i=0; i<myList.size(); i++) {
    String s = myList.get(i);
    String fs = s.substring(0, s.length()/2);
    String ls = s.substring(s.length()/2+1, s.length());
    if (fs.equals(ls)) {
        myList.set(i, fs);
    }
}

代码只是将列表的每个条目分成两个子串(除以半点).如果两者相等,则仅用一半替换原始元素,从而消除重复.

我正在测试代码而没有看到@Brendan Robert回答.此代码遵循与其答案相同的逻辑.

点击查看更多相关文章

转载注明原文:如何在Java中消除String中的重复单词? - 乐贴网