为什么string ==“value”返回false,即使它的“值”?

时间:2013-01-18 23:57:47

标签: java string equality

  

可能重复:
  How do I compare strings in Java?

用户发送命令“/ test”以获得2个输出: - 如果密码错误 - 如果密码正确

正确的密码是“秘密”

为什么当用户执行“/ test 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");
        }
    }

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

您应该使用string.equals(other_string)而不是==,它只检查它们是同一个对象。它们可能不是同一个对象,但可能仍然相同。字符串实习可能发生在Java中,其中两个对象 相同,但这不能保证。