我想要的,如果條件如下:我能做到這一點 - 如果(令牌[0] .equals(( 「MOVE」)|( 「NOT」)|( 「AND」))
if(token[0].equals(("MOVE")|("NOT")|("AND"))
{
}
否則容易有沒有其他的方法來做到這一點?
我想要的,如果條件如下:我能做到這一點 - 如果(令牌[0] .equals(( 「MOVE」)|( 「NOT」)|( 「AND」))
if(token[0].equals(("MOVE")|("NOT")|("AND"))
{
}
否則容易有沒有其他的方法來做到這一點?
對不起,沒有。
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#equals(java.lang.Object)
只比較一個對象在同一時間。
嘿,沒有。 Java並不那麼強大。你需要做三個比較:
if(token[0].equals("MOVE") || token[0].equals("NOT") || token[0].equals("AND"))
{
}
你會寫,作爲一羣獨立語句的所有紅色或一起:
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:
...
}
希望這會有所幫助!
以前的答案當然是正確的,但我會再拋出一個替代方案。
if (token[0].matches("MOVE|NOT|AND")) {
...
}
這是一個低效率和經典的過度使用正則表達式,但它的簡潔和精神接近你正在寫什麼。
一套會做你想做的。
String[] commands={"MOVE", "NOT", "AND"};
Set<String> cmds=new HashSet<String>(Arrays.asList(commands));
if (cmds.contains(token[0])) {
. . .
}
你試過編譯過嗎? –
另外,你正在使用一個按位或運算符,這對你的代碼沒有任何意義 –