0

我正在尝试将两个字符串相互比较。一个包含例如:

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}

但我想知道是否有任何方法可以检查字符串 x 中的任何值是否与字符串 y 匹配。

4

3 回答 3

2

假设您所说的“字符串中的值”是空格之间的一对字符,拆分两个字符串以将它们转换为值集(Set<String>),并使用 Set 方法计算您想要的内容(containsAll()、、、removeAll()retainAll()) .

于 2012-06-23T18:01:53.907 回答
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");
    }
}
于 2012-06-23T18:07:04.927 回答
1

如果您想查看 String x 是否在某个地方的 String y 中,请使用 .contains(String str) 方法。

如果您试图确定字符串的空格分隔部分是否包含在 y 中,那么您将需要拆分,然后在拆分操作的每个部分上包含。

于 2012-06-23T18:02:11.003 回答