Почему не работает метод проверки на null?
Не понимаю, почему не работает проверка на null.
И почему при вводе в параметр метода isRomanDigit() корректное римское число в мейне, из массива romanNumbers выходит false? Число ввожу такое же, как из массива, но в результате проверки все равно false.
private final String[] romanNumbers = {"I", "II", "III", "IV", "V", "VI", "VII", "VII", "IX", "X"};
public boolean isRomanDigit(String input) {
boolean result = false;
String upperInput = input.toUpperCase();
if (upperInput != null && !upperInput.isEmpty()) {
for (int i = 0; i < 10; i++) {
if (upperInput.equals(romanNumbers[i])) {
result = true;
System.out.println("резалт " + result + " число " + upperInput);
} else {
System.out.println("резалт фолс число не подходит");
return result;
}
}
} else {
System.out.println("резалт фолс,это пустая строка или налл");
}
return result;
}
public static void main(String[] args) {
Calc c = new Calc();
c.isRomanDigit("V");
}
Ответы (1 шт):
Автор решения: Arty Morris
→ Ссылка
У вас число находится, но выполнение цикла продолжается. Нужно прервать цикл и вернуть true
public boolean isRomanDigit(String input) {
if (input.equals("") | input == null){
return false;
}
String upperInput = input.toUpperCase();
for (int i = 0; i < 10; i++) {
if (upperInput.equals(romanNumbers[i])) {
System.out.println("резалт " + result + " число " + upperInput);
return true;
}
}
return false;
}