Обработка нулевых строк перед проверкой на пустоту
На предыдущем этапе мы узнали, как использовать метод isEmpty()
для проверки, является ли строка пустой. Однако в Java есть важное понятие, называемое null
. Значение null
означает, что переменная не ссылается на какой - либо объект. Если вы попытаетесь вызвать такой метод, как isEmpty()
, для строки со значением null
, ваша программа завершится аварийно с ошибкой NullPointerException
.
Важно обработать строки со значением null
перед попыткой вызвать на них какие - либо методы. Самый безопасный способ сделать это - сначала проверить, является ли строка null
.
Модифицируем нашу программу, чтобы продемонстрировать, как обрабатывать строки со значением null
.
-
Откройте файл HelloJava.java
в редакторе WebIDE.
-
Замените существующий код следующим:
public class HelloJava {
public static void main(String[] args) {
String str1 = "Hello";
String str2 = "";
String str3 = null; // This string is null
System.out.println("Checking String 1: \"" + str1 + "\"");
if (str1 != null && !str1.isEmpty()) {
System.out.println("String 1 is not null and not empty.");
} else {
System.out.println("String 1 is null or empty.");
}
System.out.println("\nChecking String 2: \"" + str2 + "\"");
if (str2 != null && !str2.isEmpty()) {
System.out.println("String 2 is not null and not empty.");
} else {
System.out.println("String 2 is null or empty.");
}
System.out.println("\nChecking String 3: " + str3); // Note: printing null doesn't crash
if (str3 != null && !str3.isEmpty()) {
System.out.println("String 3 is not null and not empty.");
} else {
System.out.println("String 3 is null or empty.");
}
}
}
В этом коде:
- Мы вводим строку
str3
со значением null
.
- Перед вызовом метода
isEmpty()
мы сначала проверяем, является ли строка null
, используя str != null
.
- Мы используем логический оператор И (
&&
) для объединения проверки на null
и проверки на пустоту с помощью isEmpty()
. Часть !str.isEmpty()
вычисляется только в том случае, если str != null
истинно, что предотвращает ошибку NullPointerException
.
- Условный оператор
if
проверяет, является ли строка не null
и не пустой.
-
Сохраните файл (Ctrl+S или Cmd+S).
-
Скомпилируйте программу в терминале:
javac HelloJava.java
-
Запустите программу:
java HelloJava
Вы должны увидеть вывод, похожий на следующий:
Checking String 1: "Hello"
String 1 is not null and not empty.
Checking String 2: ""
String 2 is null or empty.
Checking String 3: null
String 3 is null or empty.
Этот вывод показывает, что наш код правильно определяет, что str1
не является null
и не пуста, а str2
и str3
являются null
или пустыми, не завершаясь аварийно.
Проверяя на null
перед вызовом методов для строк, вы делаете свои Java - программы более надежными и предотвращаете распространенные ошибки. Это очень важная практика в программировании на Java.