IsBlank .isEmpty 차이 - isBlank .isEmpty chai

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 버전에서 사용할수 있는 메소드인가 입니다.

자바 기본 라이브러리 외에 가장 빈번하게 사용되는 라이브러리로 Apache common 라이브러리를 들 수 있다. 이 중 StringUtils 패키지는 문자열 처리 시에 유용한 기능들을 많이 제공한다.

isBlank와 isEmpty의 차이점은 아래 예제와 같이 공백(whitespace) 처리이다. isBlank의 경우 공백을 blank 즉, 비어있는 값으로 처리하며 isEmpty의 경우 공백을 비어있지 않다고(isEmpty가 false) 리턴한다.

StringUtils.isBlank: 공백을 빈값으로 처리

StringUtils.isBlank(null)      = true
StringUtils.isBlank("")        = true  
StringUtils.isBlank(" ")       = true  

StringUtils.isEmpty: 공백을 비어있지 않다고 처리

StringUtils.isEmpty(null)      = true
StringUtils.isEmpty("")        = true  
StringUtils.isEmpty(" ")       = false  

이 두가지는 String값이 비어있는 경우를 에러로 처리하거나 빈 값에 대한 예외 처리를 하는 경우에 많이 사용한다. 공백에 대해서도 비어있다고 판단하는 경우에는 isEmpty가 아닌 isBlank를 사용해야 함을 주의해서 사용해야 한다.

StrungUtils.isNotEmpty: 공백을 비어있지 않다고 처리

StringUtils.isNotEmpty(" ")    = true

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#isBlank()

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#isEmpty()

Java/Java-basic

[Java] isBlank() vs isEmpty() 차이

어썸오184 2021. 1. 15. 01:50

isBlank는 자바 11에 추가된 메서드이다.

isBlank와 isEmpty 모두 String 클래스에 속한 메서드이며 boolean을 반환한다.

isBlank는 해당 String 안에 공백(Whitespace) 혹은 빈 문자열이 있으면 true를 반환한다. 해당 문제가 공백인지 확인하는데 Character.isWhitespace(char) 메서드를 사용한다.

isEmpty는 해당 문자열이 빈 문자열이면 true를 반환한다. 

public boolean isEmpty() { return value.length == 0;}
public class Main {

    public static void main(String[] args) {
        
        System.out.println("ABC".isBlank());      // false
        System.out.println("  ABC".isBlank());    // false
        System.out.println("   ".isBlank());      // true
        System.out.println("".isBlank());         // true
    }
}
public class Main {

    public static void main(String[] args) {
        
        System.out.println("  ABC".isEmpty());      // false
        System.out.println("   ".isEmpty());        // false
        System.out.println("".isEmpty());           // true
        
        System.out.println("   ".isBlank());        // true
        System.out.println("".isBlank());           // true
    }
}

IsBlank .isEmpty 차이 - isBlank .isEmpty chai

자바에서 String의 공백을 확인할 때

isEmpty() 와 isBlank()를 사용할 수 있는데

일단 isEmpty()가 먼저 나왔고

이후에 isBlank()가 나와서

isEmpty()는 자바 6부터 사용 가능하지만

isBlank()는 자바 11부터 사용 가능하다

isEmpty()는 공백의 length를 가지고

0이면 true / 아니면 false를 반환하기 때문에

공백에 띄어쓰기가 들어가면 false를 반환한다

따라서 "값".trim().isEmpty();

이런 식으로 주로 사용하게 되는데

자바 11부터는 이럴 필요가 없이

isBlank()를 사용하면

공백을 제외한 텍스트가 "" 라면 true

아니면 false를 반환하게 된다

띄어쓰기 반영 미반영 여부 말고는

똑같은 기능이라고 보면 되고

둘 다 null이 들어오면

NullPointerException이 발생하기 때문에

공백뿐만 아니라 Null이 들어올 수도 있으면

아래 링크를 참조해서 isNullorEmpty() 메소드를

만들어 사용하는 것을 권장한다

자바 isNullOrEmpty 메소드 예제 및 사용방법

public class StringUtil { // null, isEmpty 여부 확인 public static boolean isNullOrEmpty(String str) { if (str == null) { return true; } else if (str.trim().isEmpty()) { return true; } else { return..

wakestand.tistory.com

IsBlank .isEmpty 차이 - isBlank .isEmpty chai