-4

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

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

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

4

3 回答 3

11

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

你必须分开你的条件。

于 2013-08-27T21:08:22.090 回答
5

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

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

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

于 2013-08-27T21:10:06.950 回答
5

您还可以switch在 Java 7 中使用 a:

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

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

于 2013-08-27T21:10:36.330 回答