반응형
문제
String.isEmpty(), String.isBlank() 의 차이점
역시.. ㅈㅎ님 코드리뷰 하다가 발견한 것들 적어본다. 코드리뷰할 때마다 TIL 쓸 것들이 쏟아진다.
String 객체의 메서드 중에는 문자열이 비었는지 체크하는 메서드인 isEmpty() 와 메서드의 공백까지 체크해서 비었는지 확인하는 isBlank() 메서드가 있다.
코드리뷰를 하던 중 isEmpty() || isBlank() 를 함께 사용한 부분이 있어서 역시 리뷰의 근거?를 마련하고자 적어본다.
먼저 isEmpty() 메서드는 JAVA 6 에 추가된 메서드고, 문자열의 길이가 0일 경우 true를 반환한다.
/**
* Returns {@code true} if, and only if, {@link #length()} is {@code 0}.
*
* @return {@code true} if {@link #length()} is {@code 0}, otherwise
* {@code false}
*
* @since 1.6
*/
@Override
public boolean isEmpty() {
return value.length == 0;
}
그리고 isBlank() 메서드는 문자열이 비어있거나 빈 공백이면 true를 반환한다.
/**
* Returns {@code true} if the string is empty or contains only
* {@linkplain Character#isWhitespace(int) white space} codepoints,
* otherwise {@code false}.
*
* @return {@code true} if the string is empty or contains only
* {@linkplain Character#isWhitespace(int) white space} codepoints,
* otherwise {@code false}
*
* @see Character#isWhitespace(int)
*
* @since 11
*/
public boolean isBlank() {
return indexOfNonWhitespace() == length();
}
javadoc 에서도 빈값이거나 whitespace를 포함하면 true를 리턴한다고 한다.
@Test
void test() {
String str = " ";
boolean blank = str.isBlank();
boolean empty = str.isEmpty();
System.out.println("blank = " + blank);
System.out.println("empty = " + empty);
}
isBlank와 isEmpty의 차이는 간단히 이렇게 나타낼 수 있다.
blank = true
empty = false
반응형
'TIL ✍️' 카테고리의 다른 글
23년 11월 8일(수요일) - 28번째 TIL (0) | 2023.11.08 |
---|---|
23년 11월 7일(화요일) - 27번째 TIL (0) | 2023.11.07 |
23년 11월 3일(금요일) - 25번째 TIL (0) | 2023.11.03 |
23년 11월 2일(목요일) - 24번째 TIL (0) | 2023.11.02 |
23년 11월 1일(수요일) - 23번째 TIL : String.repeat vs StringBuilder.append 속도 차이 (2) | 2023.11.01 |