2013-01-18 92 views
-2

可能重复:
How do I compare strings in Java?为什么字符串==“值”返回false即使它的“价值”?

用户发送命令 “/测试” 中获得2个输出: - 如果密码错误 - 如果密码是正确的

正确密码为“secret”

为什么当用户做“/测试秘密”它仍然返回它的错误密码?

@Override 
    public void processCommand(ICommandSender sender, String[] args) 
    { 
     if (args.length == 1) 
     {  
      if (args[0] != "secret") { 
       sender.sendChatToPlayer("Wrong password " + sender.getCommandSenderName()); 
      } else { 
       sender.sendChatToPlayer("Welcome " + sender.getCommandSenderName()); 
      } 
     } else if (args.length == 0) { 
       sender.sendChatToPlayer("No parameters send"); 
     } else { 
       sender.sendChatToPlayer("You have to give me just 1 argument"); 
     } 
    } 
+0

是否有需要修整的空间? –

+3

正如本网站上许多其他许多问题所指出的那样,这是因为您需要使用'.equals()'方法比较Java中的字符串相等性。 –

+0

阅读关于equals()与== –

回答

4

因为它们是不同的实例。使用equals()来比较字符串。

+1

正是。 '=='检查两个引用是否引用同一个实例。 –

0

您应该使用string.equals(other_string)代替==,只检查它们是同一个对象。他们可能不是同一个对象,但可能仍然是平等的。字符串实习可以在Java中发生在两个物体相同的,但不能保证这一点。

相关问题