isBlank() と null チェックを組み合わせる
前のステップでは、isBlank()
を使って空文字列または空白文字のみの文字列をチェックする方法を学びました。ただし、文字列変数が null
の場合、isBlank()
は NullPointerException
をスローします。実際のアプリケーションでは null
文字列に遭遇することがよくあるため、適切に処理することが重要です。
文字列が null
または空白かどうかを安全にチェックするには、null チェックと isBlank()
メソッドを組み合わせる必要があります。これを行う最も一般的な方法は、if
文を使用することです。
if (str == null || str.isBlank()) {
// 文字列は null または空白
} else {
// 文字列は null でも空白でもない
}
プログラムを変更して、null
文字列を含め、その処理方法を示しましょう。
-
WebIDE エディタで HelloJava.java
ファイルを開きます。
-
現在のコードを次のコードに置き換えます。
public class HelloJava {
public static void main(String[] args) {
String str1 = ""; // 空の文字列
String str2 = " "; // スペースのみの文字列
String str3 = "Hello"; // 空白でない文字列
String str4 = null; // null 文字列
System.out.println("Is str1 null or blank? " + (str1 == null || str1.isBlank()));
System.out.println("Is str2 null or blank? " + (str2 == null || str2.isBlank()));
System.out.println("Is str3 null or blank? " + (str3 == null || str3.isBlank()));
System.out.println("Is str4 null or blank? " + (str4 == null || str4.isBlank()));
}
}
この更新されたコードでは:
null
文字列変数 str4
を追加しました。
str == null || str.isBlank()
という条件を使って、各文字列が null
または空白かどうかをチェックしています。||
演算子は「または」を意味します。最初の部分 (str == null
) が true の場合、2 番目の部分 (str.isBlank()
) はチェックされず、NullPointerException
を防ぎます。
-
ファイルを保存します(Ctrl+S または Cmd+S)。
-
ターミナルで変更したプログラムをコンパイルします。
javac HelloJava.java
-
コンパイルされたプログラムを実行します。
java HelloJava
次の出力が表示されるはずです。
Is str1 null or blank? true
Is str2 null or blank? true
Is str3 null or blank? false
Is str4 null or blank? true
この出力から、組み合わせたチェックが空文字列、スペースのみの文字列、および null
文字列を「null または空白」と正しく識別し、空白でない文字列を「null でも空白でもない」と正しく識別していることがわかります。
null チェックと isBlank()
を組み合わせることは、Java プログラムで様々な文字列の状態を処理する堅牢な方法です。