比较两个字符串中的值

时间:2012-06-23 17:56:33

标签: java

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

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匹配。

3 个答案:

答案 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");
    }
}