-2

重複の可能性:
Java で文字列を比較するにはどうすればよいですか?

ユーザーはコマンド「/test」を送信して、2 つの出力を取得します: - パスワードが間違っている場合 - パスワードが正しい場合

正しいパスワードは「secret」

ユーザーが「/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");
        }
    }
4

2 に答える 2

4

それらは異なるインスタンスであるためです。文字列を比較するには equals() を使用します。

于 2013-01-18T23:59:03.877 に答える
0

同じオブジェクトであることのみをチェックするstring.equals(other_string)の代わりに使用する必要があります。==それらは同じオブジェクトではないかもしれませんが、それでも等しいかもしれません。2 つのオブジェクトが同じである Java では文字列のインターンが発生する可能性がありますが、これは保証されません。

于 2013-01-19T00:00:22.333 に答える