我有一个 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
如您所见,第三个字符串已被修改,现在只包含一个语句 what's up man
而不是两个。
在我的列表中有这样一种情况,有时String是正确的,有时又如上所示加倍。
我想去掉它,所以我考虑遍历这个列表:
for (String s: myList) {
但我找不到消除重复项的方法,尤其是因为每个字符串的长度未确定,我的意思是可能有记录:
this is a very long sentence this is a very long sentence
或者有时是短的:
single word singe word
可能有一些本地 java 函数吗?
最佳答案
假设字符串只重复两次,并且在您的示例中有一个空格,以下代码将删除重复:
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 - 如何从 Java 中的 String 中删除重复的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42770863/