어제 오늘 내일

[Java String] isEmpty() vs isBlank() 차이 정리 본문

IT/Java

[Java String] isEmpty() vs isBlank() 차이 정리

hi.anna 2025. 9. 17. 02:36

문자열이 비어 있는지 확인할 때 isEmpty()isBlank()는 자주 비교되는 메서드입니다.
둘 다 비슷해 보이지만, 동작 방식과 적용 범위가 다릅니다.

 

1. 동작 차이

메서드 조건 예시 (" ") 결과
isEmpty() 길이가 0이면 true " " (길이 3) false
isBlank() 비었거나, 공백 문자만 있으면 true " " (공백뿐) true
String s1 = "";
String s2 = "   ";

System.out.println(s1.isEmpty()); // true
System.out.println(s1.isBlank()); // true

System.out.println(s2.isEmpty()); // false
System.out.println(s2.isBlank()); // true

👉 isEmpty()는 길이만 보고, isBlank()는 공백 문자까지 판단합니다.

 

2. null 처리

둘 다 null을 안전하게 처리하지 못합니다.
즉, 문자열이 null이라면 호출 시 NullPointerException이 발생합니다.

String s = null;

// 안전한 사용
if (s != null && s.isBlank()) {
    System.out.println("비어 있음");
}

👉 null 가능성이 있는 경우에는 반드시 먼저 null 체크 필요합니다.

 

3. 사용 시기

  • isEmpty() → 문자열이 완전히 비었는지 ("") 확인할 때
  • isBlank()" ", "\n", "\t" 같은 공백만 있는 경우도 허용해야 할 때

예를 들어:

  • 비밀번호 입력란 검증 → isBlank()
  • API 응답이 정확히 빈 문자열인지 판정 → isEmpty()

 

4. 정리

  • isEmpty() → 길이가 0인지 확인
  • isBlank() → 비었거나 공백만 있으면 true (Java 11+)
  • 둘 다 null은 처리 못함 → null 체크 필요
  • 입력 검증 시에는 isBlank()가 더 유용

👉 isEmpty()는 단순히 비어 있는지만 확인, isBlank()는 공백만 있어도 비어 있다고 본다.

 

 

반응형
Comments