2012-03-15 15 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! 。 –

+0

[Java String.equals versus ==]の重複が可能です。(http://stackoverflow.com/questions/767372/java-string-equals-versus) – erickson

答えて

3

文字列を比較するには、==の代わりにString#equalsを使用します。

ので、代わりの:

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

あなたが使用する必要があります。

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

ありがとうございます – Epicblood

1

使用

args[1].equals(pass) 

代わりのargs[1]==pass

1
if (args[1] == pass) 

は異なる基準値をチェックするため==ケースコンパイラに

if(args[1].equals(pass) 

に変更しなければならないが、等号は()の代わりにリファレンス使用される場合、文字列の内容がチェックされます。

0

if(args [1] .equals(pass))を使用する必要があります

関連する問題