我可以这样做 - 如果(令牌[0] .equals((“MOVE”)|(“NOT”)|(“AND”))

时间:2013-04-02 02:23:41

标签: java equals

我想制作一个if条件如下:

if(token[0].equals(("MOVE")|("NOT")|("AND"))
{

}

Orelse有没有其他方法可以做到这一点?

5 个答案:

答案 0 :(得分:3)

抱歉,没有。

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#equals(java.lang.Object)

它只能一次比较一个对象。

答案 1 :(得分:2)

你会把它写成一堆独立的语句,所有的OR-red在一起:

if (token[0].equals("MOVE") || token[0].equals("NOT") || token[0].equals("AND")) {
     ...
}

或者,使用新的基于Java字符串的switch语句:

switch(token[0]) {
case "MOVE":
case "NOT":
case "AND":
    ...
    break;
default:
    ...
}

希望这有帮助!

答案 2 :(得分:0)

嘿,不。 Java并不那么强大。您需要进行三次比较:

if(token[0].equals("MOVE") || token[0].equals("NOT") || token[0].equals("AND"))
{

}

答案 3 :(得分:0)

早期的答案当然是正确的,但我会再提出一个替代方案。

if (token[0].matches("MOVE|NOT|AND")) {
    ...
}

它有点低效,经典过度使用正则表达式,但它的精神与你所写的内容完全一致。

答案 4 :(得分:0)

Set会做你想做的事。

    String[] commands={"MOVE", "NOT", "AND"};
    Set<String> cmds=new HashSet<String>(Arrays.asList(commands));
    if (cmds.contains(token[0])) {
        . . .
    }