为什么字符串 == "value"即使它"value"也返回 false?



可能重复:
如何在Java中比较字符串?

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

正确的密码是"秘密">

为什么当用户做"/testsecret"时,它仍然返回错误的密码?

@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");
        }
    }

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

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

最新更新