为啥这不起作用?爪哇

Posted

技术标签:

【中文标题】为啥这不起作用?爪哇【英文标题】: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.equals versus ==的可能重复 【参考方案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))

【讨论】:

以上是关于为啥这不起作用?爪哇的主要内容,如果未能解决你的问题,请参考以下文章

(这里是极端菜鸟)为啥这个 C 代码不起作用?

如何做一个简单的缩放动画,为啥这不起作用?

为啥 NSPredicate 和 DateComponents 不起作用

Python正则表达式,多行匹配模式..为啥这不起作用?

在单独的方法中初始化 Java 对象:为啥这不起作用

为啥 AVPlayer 边界时间观察器不起作用?