Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查列表条目是否包含单词序列java_Java_String_List - Fatal编程技术网

检查列表条目是否包含单词序列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);
    }