Java에서 String(문자열) 데이터를 다루다보면, 해당 데이터가 존재하는지 공백인지 체크하는 경우가 자주 있습니다. Java에서는 공백 문자열 체크를 위한 기본 메서드가 여러가지 존재하는데, 그 중 String 클래스 멤버 메서드인 .isEmpty()와 .isBlank() 각각 특징 및 차이점이 무엇인지 확인해보겠습니다.
.isEmpty()
// String.java
public final class String {
public boolean isEmpty() {
return value.length == 0;
}
}
- isEmpty()는 해당 문자열 객체의 길이를 체크하여 boolean 값을 리턴한다.
문자열의 길이가 0인 경우, true 리턴 - Java 6 이후 버전에서 사용 가능하다.
.isBlank()
// String.java
public final class String {
public boolean isBlank() {
return indexOfNonWhitespace() == length();
}
}
- isBlank()는 문자열이 비어 있거나, 빈 공백으로만 이루어져 있는지 체크하여 boolean 값을 리턴한다.
문자열의 길이가 0이거나, 빈 공백("", " ")으로만 이루어져있으면 true 리턴 - Java 11 이후 버전에서 사용 가능하다.
차이점
public class Example {
public static void main(String[] args) {
// Given
String case1 = "Hi";
String case2 = "";
String case3 = " ";
// When
boolean empty_case1 = case1.isEmpty();
boolean empty_case2 = case2.isEmpty();
boolean empty_case3 = case3.isEmpty();
boolean blank_case1 = case1.isBlank();
boolean blank_case2 = case2.isBlank();
boolean blank_case3 = case3.isBlank();
// Then
System.out.println("empty_case1 = " + empty_case1);
System.out.println("empty_case2 = " + empty_case2);
System.out.println("empty_case3 = " + empty_case3);
System.out.println();
System.out.println("blank_case1 = " + blank_case1);
System.out.println("blank_case2 = " + blank_case2);
System.out.println("blank_case3 = " + blank_case3);
}
}
// 위 예제 코드 실행 결과
empty_case1 = false // case: "hi"
empty_case2 = true // case: ""
empty_case3 = false // case: " "
blank_case1 = false // case: "hi"
blank_case2 = true // case: ""
blank_case3 = true // case: " "
위 예제 코드의 실행 결과와 같이 String 객체가 " " 빈 공백을 여러개 포함하고 있는 경우 서로 다르게 처리한다는 점이 가장 큰 차이점이다.
문자열 내부 데이터가 전부 공백(스페이스)로 이루어져있는 데이터를 비어있다고 판단해야 된다면 .isBlank() 메서드를 사용하여 분기처리를 진행하면 될 것 같다.
'JAVA > 기타' 카테고리의 다른 글
JAVA(spring) - HTTP 통신 방식 3가지(RestTemplate, WebClient, OpenFeign) (0) | 2023.05.23 |
---|---|
JAVA - ArrayList 간단하게 정렬(sort)하기(오름차순&내림차순) (0) | 2023.03.10 |
Springboot에서 CircuitBreaker 설명 및 사용법 (0) | 2022.11.29 |
퀵 정렬(Quick Sort) (9) | 2015.10.26 |
삽입 정렬(Insertion Sort) (5) | 2015.10.26 |