2012-03-15 124 views
0
public void onMessage(String channel, String sender, String login, String hostname, String message) { 
    if (message.toLowerCase().startsWith("!up")) { 
     String[] args = message.split(" "); 
     String pass = "password"; 
     if (args[1] == pass){ 
      op(channel, sender); 
      sendMessage(channel, sender+": you now have op"); 
     }else{ 
      sendMessage(channel, sender+ " incorrect pass"); 
      sendMessage(channel, "" +args[1]); 
     } 
     } 
    } 

這是爲了檢查用戶是否輸入!up password 無論我做什麼,它總是說密碼不正確。我做錯了什麼?爲什麼這不起作用? Java

+3

.equals! 。等於! – 2012-03-15 04:25:42

+0

[Java String.equals vs ==]的可能重複(http://stackoverflow.com/questions/767372/java-string-equals-versus) – erickson 2012-03-15 04:31:46

回答

3

使用String#equals而不是==來比較字符串。

所以不是:

if (args[1] == pass) { 
    ... 
} 

你應該使用:

if (args[1].equals(pass)) { 
    ... 
} 
+0

感謝:D現在工作 – Epicblood 2012-03-15 04:34:33

1

使用

args[1].equals(pass) 

,而不是args[1]==pass

1
if (args[1] == pass) 

應因爲在==情況下編譯器被改變以

if(args[1].equals(pass) 

檢查參考值,其是不同的,但是當equals()方法用來代替參考串的內容被檢查。