모기업 인터뷰에서 받은 질문인데 순간적으로 다양한 답변이 생각나지 않아 대답을 만족스럽게 하지 못했다. 익숙함에 속아 중요한 걸 놓치지 말자! 아쉬운 마음에 블로그로 기록해본다.
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()`는 문자열이 비어있거나 공백 문자열 또는 공백 문자로만 이루어져 있는지를 확인합니다. 필요에 따라 적절한 메서드를 선택하여 사용하시면 됩니다.