Почему это не работает?Джава - PullRequest
0 голосов
/ 15 марта 2012
public void onMessage(String channel, String sender, String login, String hostname, String message) {
    if (message.toLowerCase().startsWith("!up")) {
        String[] args = message.split(" ");
        String pass = "password";
        if (args[1] == pass){
            op(channel, sender);
            sendMessage(channel, sender+": you now have op");
        }else{
            sendMessage(channel, sender+ " incorrect pass");
            sendMessage(channel, "" +args[1]);
        }
        }
    }

это должно проверить, вводит ли пользователь !up password независимо от того, что я делаю, он всегда говорит неверный пароль.что я сделал не так?

Ответы [ 4 ]

3 голосов
/ 15 марта 2012

Используйте String # equals вместо == для сравнения строк.

Так что вместо:

if (args[1] == pass) {
   ...
}

Вы должны использовать:

if (args[1].equals(pass)) {
   ...
}
1 голос
/ 15 марта 2012
if (args[1] == pass) 

должен быть изменен на

if(args[1].equals(pass)

, потому что в == случае компилятор проверяет значения ссылок, которые отличаются, но когда используется equals () вместо ссылки, содержимое строк проверяется.

1 голос
/ 15 марта 2012

используйте

args[1].equals(pass)

вместо args[1]==pass

0 голосов
/ 15 марта 2012

Вы должны использовать if (args [1] .equals (pass))

...