어제 오늘 내일

[Java] isEmpty() 와 isBlank()의 차이 본문

IT/Java

[Java] isEmpty() 와 isBlank()의 차이

hi.anna 2021. 4. 26. 06:38

 

java.lang.String 클래스에는 isEmpty() 메소드와 isBlank() 메소드가 있습니다.

(JAVA 11 이후 버전 기준)

 

두 개의 메소드 모두 문자열이 empty string인지 체크합니다.

하지만, 약간의 차이가 있습니다.

 

 

1. isEmpty()

  • JAVA 6 이후에 추가된 메소드 입니다.
  • 문자열의 길이가 0인 경우에, true를 리턴합니다.

 

 

2. isBlank()

  • JAVA 11 이후에 추가된 메소드 입니다.
  • 문자열이 비어 있거나, 빈 공백으로만 이루어져 있으면, true를 리턴합니다.

 

 

  예제 코드  

public class StringEmptyBlank {
    public static void main(String[] args) {

        System.out.println("Hello".isEmpty() + "," + "Hello".isBlank()); // false, false
        System.out.println("  Hello  ".isEmpty() + "," + "  Hello  ".isBlank()); // false, false
        System.out.println("".isEmpty() + "," + "".isBlank()); // true, true
        System.out.println("  ".isEmpty() + "," + "  ".isBlank()); // false, true

    }
}

 

  결과  

false,false
false,false
true,true
false,true

"  ".isEmpty(), "  ".isBlank();

위 예제를 보면, 나머지 케이스는 isEmpty()와 isBlank()가 같지만,

마지막에 빈 공백이 있는 문자열을 체크하는 경우에는

두 메소드의 결과가 다릅니다.

isEmpty()는

문자열의 길이를 체크하여, 문자열의 길이가 0인 경우에만 true를 리턴하기 때문에

빈 공백이 들어있는 문자열은 false를 리턴합니다.

isBlank()는

문자열이 비어 있거나, 빈 공백(white space)를 포함하고 있는 경우에 true를 리턴하기 때문에

위 케이스의 경우 true를 리턴합니다.

 


 

정리해보면,

isEmpty()와 isBlank()의 가장 큰 차이는

빈 공백(white space)을 어떻게 처리하느냐,

어떤 Java 버전에서 사용할수 있는 메소드인가 입니다.

 

 

 

반응형
Comments