为啥这不起作用?爪哇
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))
【讨论】:
以上是关于为啥这不起作用?爪哇的主要内容,如果未能解决你的问题,请参考以下文章