2012-03-15 72 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()方法用来代替参考串的内容被检查。