我想使用或运算符检查带有多个值的字符串,这可能吗?
like if(str.equals("A" || "B" || "C")){
//do this
}
else if(str.equals("D" || "E" || "F")){
//do that
}
我在编译时遇到错误,即||不能在字符串中使用
答案 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教程中的“在交换机语句中使用字符串”部分。