// pom.xml
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
Apache Commons Lang 라이브러리의 메소드 중 하나인 StringUtils.isEmpty()는 주어진 문자열이 비어있는지,널(Null)인지 확인할 때 사용할 수 있다.
문자열을 검증하고 처리하는데 편리
String str1 = "";
String str2 = "hello";
boolean isEmpty1 = StringUtils.isEmpty(str1);
boolean isEmpty2 = StringUtils.isEmpty(str2);
System.out.println("isEmpty1 : " + isEmpty1);
System.out.println("isEmpty2 : " + isEmpty2);
문자열 str1, 2를 생성해 빈 값과 hello를 할당한 후, StringUtils.isEmpty()를 사용하여 비어있는지 또는 널(Null)인지 확인해보았다.
isEmpty1 : true
isEmpty2 : false
주요 장점 중 하나는 Null에 안전하다는 것이다.
String.isEmpty()는 문자열이 Null인 경우, NullPointerException을 발생시키지만 StringUtils.isEmpty는 값을 정상적으로 처리하고 true를 반환한다.
하지만 문자열이 비어있는지, Null인지만!!! 확인한다는 점을 기억해야한다.
String str = " ";
"(공백)(공백)(공백)...."
이렇게 공백으로만 가득 채워진 문자열은 확인하지 않는다.
위 문제를 해결할 수 있는 방법은 isBlank를 사용하는 것이다.
이 메소드는 문자열이 비어 있는지 또는 Null인지 확인할 수 있을 뿐 아니라 공백인지도 확인할 수 있다.
String str = " ";
boolean isEmpty = StringUtils.isEmpty(str);
boolean isBlank = StringUtils.isBlank(str);
System.out.println("isEmpty : " + isEmpty);
System.out.println("isBlank : " + isBlank);
isEmpty: false
isBlank: true
str은 공백 문자로 구성된 문자열이다.
문자열이 '비어'있지 않기 때문에 isEmpty는 false로 isBlank는 true를 반환하게 된다.
사실 굳이 isEmpty를 사용하지 않아도 동일한 목적으로 사용할 수 있는 Java 메소드가 존재하는데 바로 String 클래스의 메소드인 equals를 사용하는 것 이다.
String str = "";
boolean isEmpty = str.equals("");
System.out.println(isEmpty);
true
위 예는 문자열이 빈 문자열과 같은지를 확인한다.
하지만, equals 메소드는 Null로부터 안전하지 않으며 Null인 경우 NullPointerException을 발생시킨다.
문자열이 비어 있으면 그 길이 또한 0이 될테니 length 또한 다른 대안 중 하나다.
String str = "";
boolean isEmpty = str.length() == 0;
System.out.println(isEmpty);
true
length 메소드는 문자열의 길이가 0인지 확인하고 true를 반환한다.
equals와 유사하며 length 또한 null로부터 안전하진 않다.
메소드 | Null 안전 | 공백 확인 |
---|---|---|
StringUtils.isEmpty | O | X |
StringUtils.isBlank | O | O |
equals | X | X |
length | X | X |
끝!! @