카테고리 없음

String null check, 어떻게 하고 있나요? feat. isEmpty() 와 isBlank()

쁜새 2024. 2. 22. 09:24
728x90

 

모기업 인터뷰에서 받은 질문인데 순간적으로 다양한 답변이 생각나지 않아 대답을 만족스럽게 하지 못했다. 익숙함에 속아 중요한 걸 놓치지 말자! 아쉬운 마음에 블로그로 기록해본다.

1. 직관적인 방법

직접 == 연산으로 비교하는 방법이다. 가장 떠올리기 쉬운 방법!

String str = null;
if (str != null) {
    // 문자열이 null이 아닌 경우
} else {
    // 문자열이 null인 경우
}

 

2. equals()

Objects 클래스의 equals 메서드를 사용하여 null 체크하는 방법

String str = null;
if (Objects.equals(str, null)) {
    // 문자열이 null인 경우
} else {
    // 문자열이 null이 아닌 경우
}

이때 주의할 점은 문자열이 null인 경우에 str.equals(null)을 호출하면 NullPointerException이 발생할 수 있다.

 

3. isEmpty()와 isBlank()

String str = null;
if (StringUtils.isEmpty(str)) {
    // 문자열이 null인 경우에
} else {
    // 문자열이 null이 아닌 경우에
}

if (StringUtils.isBlank(str)) {
    // 문자열이 null인 경우에
} else {
    // 문자열이 null이 아닌 경우에
}

 

4. Optional을 사용

String str = null;
Optional<String> optionalStr = Optional.ofNullable(str);
if (optionalStr.isPresent()) {
    // 문자열이 null이 아닌 경우에 
} else {
    // 문자열이 null인 경우에 
}

 

 

 

**참고

isEmpty()와 isBlank()의 차이를 알아보고 가자!

두 메서드는 문자열이 비어있는지 여부를 확인하는 데 사용됩니다. 

1. isEmpty() 메서드:


   - `isEmpty()` 메서드는 문자열의 길이가 0인지를 확인. 즉, 문자열이 비어 있는지를 확인.
   - 공백 문자열("")은 `isEmpty()`가 true를 반환합니다.
   - 예시: 

  String str = "";
  boolean empty = str.isEmpty(); // true



2. isBlank() 메서드:


   - `isBlank()` 메서드는 문자열이 비어있거나, 공백 문자열("") 또는 공백 문자(whitespace)만 포함하고 있는지 확인
   - 공백 문자는 공백(' '), 탭('\t'), 개행('\n'), 캐리지 리턴('\r')과 같은 문자
   - 예시:

 String str = "   ";
 boolean blank = str.isBlank(); // true


   - `isBlank()`는 Java 11부터 추가되었습니다.

따라서, `isEmpty()`는 문자열의 길이가 0인지를 확인하고, `isBlank()`는 문자열이 비어있거나 공백 문자열 또는 공백 문자로만 이루어져 있는지를 확인합니다. 필요에 따라 적절한 메서드를 선택하여 사용하시면 됩니다.

728x90