我正在尝试将两个字符串相互比较。一个包含例如:
String x =" aa bb cc dd ee "
和另一个:
String y =" aa bb "
现在我想这样做
if (any values from String x EXISTS IN String y)
if (y.matches(???)){System.out.println("true");}
else{System.out.println("false");}
我知道我可以通过使用正则表达式来做相反的事情,如下所示:
if (x.matches(".*"+y+".*")){do something}
但是我想知道是否有办法检查String x中的任何值是否与String y匹配。
答案 0 :(得分:2)
假设你所谓的“字符串中的值”是空格之间的一对字符,拆分两个字符串以将它们转换为值集(Set<String>
),并使用Set方法计算你的内容想要(containsAll()
,removeAll()
,retainAll()
等。)
答案 1 :(得分:1)
如果你想看看String x是否在某个地方的String y中,那么使用.contains(String str)方法。
如果您正在尝试确定字符串中的空格分隔部分是否包含在y中,那么您需要拆分然后在拆分操作的每个部分上执行包含。
答案 2 :(得分:1)
String x_trimmed = x.trim();
String y_trimmed = y.trim();
String[] x_elements = x_trimmed.split("\\s+");
String[] y_elements = y_trimmed.split("\\s+");
Set<String> x_elementsSet = new HashSet<String>(Arrays.asList(x_elements));
Set<String> y_elementsSet = new HashSet<String>(Arrays.asList(y_elements));
for (String x : x_elementsSet) {
if (y_elementsSet.contains(x)) {
System.out.println("true");
} else {
System.out.println("false");
}
}