在java中使用String或运算符

时间:2013-08-27 21:07:49

标签: java

我想使用或运算符检查带有多个值的字符串,这可能吗?

like if(str.equals("A" || "B" || "C")){
//do this 
}
else if(str.equals("D" || "E" || "F")){
//do that
}

我在编译时遇到错误,即||不能在字符串中使用

3 个答案:

答案 0 :(得分:10)

if(str.equals("A") || str.equals("B") || str.equals("C")){ .... }

你必须分开你的条件。

答案 1 :(得分:5)

在这种情况下你不需要OR:你可以像这样编写相同的条件:

if (Arrays.asList("A", "B", "C").contains(str)) {
    ...
}

当测试字符str包含在asList调用中指定的列表中时,此测试成功,这可方便地获取可变数量的参数。

答案 2 :(得分:5)

您还可以在Java 7中使用switch

switch (str) {
case "A":
case "B":
case "C":
    // do this
    break;
case "D":
case "E":
case "F":
    // do that
    break;
}

如果您要比较多个字符串,这可能更具可读性。有关参考,请参阅switch Statement教程中的“在交换机语句中使用字符串”部分。