[Java] StringUtils.isBlank와 StringUtils.isEmpty의 차이
Updated:
👩🏻💻 빈값에 대한 예외 처리 시 주로 사용하는 StringUtils.isBlank와 StringUtils.isEmpty의 차이를 알아봅니다.
조회 비즈니스 로직을 작성하다가 습관적으로 isEmpty를 사용했는데, 자바 11버전부터 isBlank가 추가됐다고 하여 어떤 차이가 있는지 궁금했다.
isBlank와 isEmpty의 차이점은 공백(whitespace) 처리이다.
isBlank의 경우 white space(공백)만 있으면 비어있는 값으로 처리하며 true를 반환한다.
isEmpty의 경우 white space(공백)를 비어있지 않다고(isEmpty가 false) 리턴한다. length() 즉, 문자열의 길이가 0일 때만 true를 반환하기 때문이다.
StringUtils.isBlank: 공백을 빈값으로 처리
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isEmpty: 공백을 비어있지 않다고 처리
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
따라서 공백에 대해서도 비어있다고 판단하는 경우에는 isEmpty가 아닌 isBlank를 사용해야 함을 주의해야한다.
Reference
https://hilucky.tistory.com/217 https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#isEmpty() https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#isBlank()