어제 오늘 내일

[Java String] String.isBlank() – 공백만 있어도 비었다고 판단하기 본문

IT/Java

[Java String] String.isBlank() – 공백만 있어도 비었다고 판단하기

hi.anna 2025. 9. 16. 12:34

isEmpty()는 문자열의 길이가 0인 경우만 true를 반환했습니다.
하지만 실제 개발에서는 " "처럼 공백만 들어온 경우도 비어 있다고 간주해야 할 때가 많습니다.
이럴 때 사용하는 메서드가 바로 isBlank()입니다. (Java 11 이상에서 추가)

 

1. 기본 사용법

public boolean isBlank()
  • 문자열이 비었거나 ("")
  • 공백 문자(스페이스, 탭, 줄바꿈 등)만 포함되어 있다면
    👉 true 반환
String str1 = "";
String str2 = "   ";
String str3 = "\n\t";
String str4 = "Java";

System.out.println(str1.isBlank()); // true
System.out.println(str2.isBlank()); // true
System.out.println(str3.isBlank()); // true
System.out.println(str4.isBlank()); // false

👉 isEmpty()라면 " ""\n\t"false였겠지만, isBlank()true로 처리합니다.

 

2. null은 여전히 체크 불가

isBlank()isEmpty()와 마찬가지로, 문자열이 null인 경우 바로 호출하면 NullPointerException이 발생합니다.

String str = null;

if (str != null && str.isBlank()) {
    System.out.println("비어 있거나 공백뿐");
}

👉 반드시 null 가능성이 있으면 null 체크를 먼저 해줘야 안전합니다.

 

3. 실전 활용 예제

사용자 입력 검증

Scanner sc = new Scanner(System.in);
System.out.print("닉네임을 입력하세요: ");
String nickname = sc.nextLine();

if (nickname.isBlank()) {
    System.out.println("닉네임은 공백이 아닌 값을 입력해야 합니다!");
}

👉 isBlank() 덕분에 사용자가 스페이스바만 눌러도 공백으로 간주해 체크할 수 있습니다.

CSV 파일 파싱

String[] values = {"Tom", " ", "Jerry"};

for (String v : values) {
    if (v.isBlank()) {
        System.out.println("값 없음 처리");
    } else {
        System.out.println("값: " + v);
    }
}

출력:

값: Tom
값 없음 처리
값: Jerry

👉 CSV, Excel 같은 데이터를 다룰 때 빈 칸스페이스만 있는 칸을 같은 의미로 처리할 수 있습니다.

 

4. isEmpty() vs isBlank()

String text = "   ";

System.out.println(text.isEmpty()); // false (길이 3)
System.out.println(text.isBlank()); // true  (공백뿐)
  • isEmpty() → 길이가 0인지 확인 (""만 true)
  • isBlank() → 길이가 0이거나, 공백만 있으면 true

5. 정리

  • isBlank()는 Java 11부터 사용 가능
  • 문자열이 비었거나 공백 문자만 포함하면 true
  • 사용자 입력 검증, 데이터 파싱 등에 매우 유용
  • isEmpty()보다 현실적인 조건 검사 가능

👉 공백만 있는 문자열도 "비어 있음"으로 처리하고 싶다면 String.isBlank()를 쓰자!

 

 

반응형
Comments