用户发送命令“/ 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");
}
}
答案 0 :(得分:4)
因为它们是不同的实例。使用equals()来比较字符串。
答案 1 :(得分:0)
您应该使用string.equals(other_string)
而不是==
,它只检查它们是同一个对象。它们可能不是同一个对象,但可能仍然相同。字符串实习可能发生在Java中,其中两个对象 相同,但这不能保证。