我有两个字符串列表,' a'和' b'。现在我需要检查' b'中是否有任何字符串。包含或等于' a'。
中的任何字符串这是我尝试过的
for (String string : a) {
if (!contains(string)) {
// add 'string' to another list.
}
}
和
private boolean contains(String a) {
for (String string : b) {
if (b.contains(a)) {
return false;
}
}
return true;
}
但是,这似乎不起作用。请记住,我还是比较新的Java,所以还有很多我还不了解的东西。
编辑:我故意返回false,我只是更改了变量以使其更容易理解。
答案 0 :(得分:1)
for(String s : a)
for(String ss : b)
if(s.contains(ss)) return true;
return false;
它应该有用。
答案 1 :(得分:0)
试试这个
!Collections.disjoint(list1,list2);
或
List.retainAll
答案 2 :(得分:0)
尝试使用此方法contains()
,传递String a
时检查传递Collcetion b
。如果b
包含字符串a
,那么请返回true
其他false
。
private static boolean contains(String a, List<String> b) {
for (String string : b) {
if (string.equals(a)) {
return true;
}
}
return false;
}
示例:
List<String> a = new ArrayList<String>();
a.add("1");
a.add("2");
a.add("3");
List<String> b = new ArrayList<String>();
b.add("1");
b.add("2");
b.add("4");
for (String string : a) {
if (!contains(string, b)) {
System.out.println("String " + string + " is not present in collection b");
}
}
SYSOUT:
String 3 is not present in collection b