检查列表条目是否包含单词序列java
如果列表中没有包含包含完全相同字符序列的条目,我只想向列表中添加字符串 这不起作用。。。将添加“字符串”检查列表条目是否包含单词序列java,java,string,list,Java,String,List,如果列表中没有包含包含完全相同字符序列的条目,我只想向列表中添加字符串 这不起作用。。。将添加“字符串” list1.add("String"); list2.add("Hello I am String"); for (String str : list1) { if (!list2.contains(str)) list2.add(str); } 即使list2的条目包含“String”,也会添加单词“String”。我怎么能告诉它不只是检
list1.add("String");
list2.add("Hello I am String");
for (String str : list1) {
if (!list2.contains(str))
list2.add(str);
}
即使list2的条目包含“String”,也会添加单词“String”。我怎么能告诉它不只是检查相同的字符序列?我必须用forloops或RegEx手动完成每个条目吗?或者有更好的方法吗?您需要使用String.contains,而不是集合的contains(匹配整个字符串)。 因此,您必须迭代列表中的所有字符串,并对每个字符串运行String.contains
for (String str : list1) {
boolean found = false;
for (String str2 : list2) {
if (str2.contains(str)) {
found = true;
break;
}
}
if (!found) {
list2.add(str);
}
}
循环遍历两个列表:
outer: for (String str1 : list1) {
for (String str2: list2) {
if (str2.contains(str1)) {
continue outer;
}
}
list2.add(str);
}
这将检查列表2的每个元素是否有子字符串。您做错了
list1.add("String");
list2.add("Hello I am String");
for (String str : list1) {
if (!list2.contains(str))
//The above line checks if list2 contains "String". It doesn't check if list2's Strings contain "String".
// so, iterate over each value of list2 and check for string.contains().
list2.add(str);
}