【问题标题】:Why is this not working? Java为什么这不起作用?爪哇
【发布时间】:2012-03-15 04:23:32
【问题描述】:
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 string if-statement irc


【解决方案1】:

使用 String#equals 代替 == 来比较字符串。

所以而不是:

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

你应该使用:

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

【讨论】:

    【解决方案2】:

    使用

    args[1].equals(pass)
    

    而不是args[1]==pass

    【讨论】:

      【解决方案3】:
      if (args[1] == pass) 
      

      应该改为

      if(args[1].equals(pass)
      

      因为在 == 情况下编译器会检查不同的引用值,但是当使用 equals() 代替引用时,会检查字符串的内容。

      【讨论】:

        【解决方案4】:

        你必须使用 if (args[1].equals(pass))

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-06-29
          • 2017-04-04
          • 1970-01-01
          • 1970-01-01
          • 2011-09-19
          • 1970-01-01
          • 2022-07-06
          相关资源
          最近更新 更多