isBlank()の使い方

1. isBlank()とは?

  • isBlank()は、Java 11で追加されたStringクラスのインスタンスメソッドです。
  • 役割:文字列が「空」または「空白文字(スペース、タブ、改行)」のみで構成されているかどうかを判定します。
  • 返り値trueまたはfalse(ブール値)を返します。

2. どんなときに使う?

  • ユーザー入力や外部データが実質的に空かどうかを判定する必要がある場面で利用します。
    • 例1:フォーム入力のバリデーション。
    • 例2:ログファイルやデータ処理時に、不要な空白行を無視したい場合。

3. どこで使うべき?

  • データ検証の場面
    • ユーザーが入力した文字列が空白のみかをチェックし、エラー処理に役立てます。
  • 文字列操作の前処理
    • 空白文字列を除外して、不必要なデータ処理を回避します。

4. どんな型やデータに使う?

  • isBlank()は、String型に対して使用します。
  • isEmpty()との違い
    • isBlank()は空白文字列 " " に対してもtrueを返します。
    • isEmpty()は空白文字列 " " に対してはfalseを返します。
メソッド空文字列 ""空白文字列 " "文字列 "Hello"
isBlank()truetruefalse
isEmpty()truefalsefalse

5. どうやって使う?

例1: 基本的な使い方

文字列が空や空白文字のみかをチェックする例。

public class Main {
public static void main(String[] args) {
String str1 = "";
String str2 = " ";
String str3 = "Hello";

System.out.println(str1.isBlank()); // true(空文字)
System.out.println(str2.isBlank()); // true(空白文字のみ)
System.out.println(str3.isBlank()); // false(内容あり)
}
}

例2: 入力バリデーション

フォーム入力時に、空白のみの入力を無効にする例。

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print("名前を入力してください: ");
String name = scanner.nextLine();

if (name.isBlank()) {
System.out.println("名前を空白にはできません!");
} else {
System.out.println("ようこそ、" + name + "さん!");
}
}
}

例3: 空白文字列のフィルタリング

リストから空白文字列を除外する方法。

import java.util.List;
import java.util.stream.Collectors;

public class Main {
public static void main(String[] args) {
List<String> strings = List.of("Java", " ", "", "Programming");

List<String> filteredStrings = strings.stream()
.filter(s -> !s.isBlank()) // 空白文字列を除外
.collect(Collectors.toList());

System.out.println(filteredStrings); // [Java, Programming]
}
}

まとめ

isBlank()は、Java 11で追加された便利なメソッドで、空白文字列を判定する際に役立ちます。

  • フォーム入力のバリデーションデータ処理の前処理に有効。
  • isEmpty()より柔軟な判定が可能。
  • Java 11以降で利用可能。