Так вот фрагмент кода я работаю над:JAVA Сравнение двух строк не работает
String direction = s.readLine();
System.out.println(direction);
if (direction.equals("up") != true && direction.equals("down") != true &&
direction.equals("left") != true && direction.equals("right") &&
direction.equals(null) != true) {
System.out.println("Invalid Solution file");
System.exit(0);
}
Что предполагается сделать, это прочитать строку из текстового файла (с помощью BufferedReader
) и то если строка не является действительным направлением или пустым, тогда она должна печатать «Недействительное решение» и выйти.
Проблема в том, что независимо от того, какая строка направления является оператором if, все еще выполняется. Я положил println, чтобы проверить, правильно ли читается направление, но это выглядит абсолютно нормально. Так почему же код не работает так, как предполагалось?
Кроме того, '! = True' выглядит странно. Вместо этого используйте оператор '!' («Not») для каждого термина. –
'direction.equals (null)! = True' вы пытаетесь сравнить с пустой строкой? это должно быть 'direction.equals (" ")! = true' – tanjir
@mmm Это неверно на основании его проблемы, он действительно хочет' && ', потому что он пытается найти строковые записи, которые не соответствуют ни одному из действительных направлений –