StringUtils.isBlank() vs String.isEmpty()
다음과 같은 코드를 발견했습니다.
String foo = getvalue("foo");
if (StringUtils.isBlank(foo))
doStuff();
else
doOtherStuff();
이것은 기능적으로 다음과 같습니다.
String foo = getvalue("foo");
if (foo.isEmpty())
doStuff();
else
doOtherStuff();
두 가지 차이점(org.apache.commons.lang3.StringUtils.isBlank
그리고.java.lang.String.isEmpty
)?
StringUtils.isBlank()
는 문자열의 각 문자가 공백 문자인지(또는 문자열이 비어 있는지 또는 늘인지) 확인합니다.이것은 단순히 문자열이 비어 있는지 확인하는 것과는 완전히 다릅니다.
링크된 문서:
문자열이 공백("") 또는 null인지 확인합니다.
StringUtils.isBlank(null) = true StringUtils.isBlank("") = true StringUtils.isBlank(" ") = true StringUtils.isBlank("bob") = false StringUtils.isBlank(" bob ") = false
StringUtils.isEmpty 비교:
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
경고:java.lang에서.String.isBlank() 및 java.lang.String.is Empty()는 반환되지 않는 것을 제외하고 동일하게 동작합니다.true
위해서null
.
java.lang.String.isBlank()
(Java 11 이후)
@arshajii의 답변은 완전히 정확합니다.하지만 좀 더 명확하게 말하면,
StringUtils.isBlank()
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
String Utils. is Empty
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
StringUtils isEmpty = String isEmpty 검사 + null 검사입니다.
StringUtils isBlank = StringUtils is Empty 검사 + 텍스트에 공백 문자만 포함되어 있는지 확인합니다.
자세한 조사에 도움이 되는 링크:
StringUtils.isBlank()
는 늘도 체크합니다만, 이것은 다음과 같습니다.
String foo = getvalue("foo");
if (foo.isEmpty())
을 던지다NullPointerException
한다면foo
null 입니다.
StringUtils.isBlank
또한 반환됩니다.true
공백에 대해서만:
isBlank(String str)
문자열이 공백("") 또는 null인지 확인합니다.
StringUtils.isBlank(foo)
는 널체크를실행합니다.퍼포먼스를 하면foo.isEmpty()
그리고.foo
null입니다. Null Pointer가 발생합니다.예외.
isBlank()와 isEmpty()의 유일한 차이점은 다음과 같습니다.
StringUtils.isBlank(" ") = true //compared string value has space and considered as blank
StringUtils.isEmpty(" ") = false //compared string value has space and not considered as empty
StringUtils.isBlank()는 공백(공백만) 및 늘 문자열에 대해서도 true를 반환합니다.실제로 Char 시퀀스를 트리밍하고 체크를 수행합니다.
StringUtils.isEmpty()는 String 파라미터에 문자가 없거나 String 파라미터가 늘일 때 true를 반환합니다.차이점은 string 파라미터에 whiltespace만 포함되어 있는 경우 is Empty()는 false를 반환한다는 것입니다.공백은 비어 있지 않은 상태로 간주됩니다.
서드파티 lib 대신 Java 11 isBlank()를 사용합니다.
String str1 = "";
String str2 = " ";
Character ch = '\u0020';
String str3 =ch+" "+ch;
System.out.println(str1.isEmpty()); //true
System.out.println(str2.isEmpty()); //false
System.out.println(str3.isEmpty()); //false
System.out.println(str1.isBlank()); //true
System.out.println(str2.isBlank()); //true
System.out.println(str3.isBlank()); //true
public static boolean isEmpty(String ptext) {
return ptext == null || ptext.trim().length() == 0;
}
public static boolean isBlank(String ptext) {
return ptext == null || ptext.trim().length() == 0;
}
두 코드 모두 will how is blank handle white space를 처리하는 방법은 blank String일 수 있습니다.이것은 공백 처리용 코드를 가지고 있습니다.
public static boolean isBlankString( String pString ) {
int strLength;
if( pString == null || (strLength = pString.length()) == 0)
return true;
for(int i=0; i < strLength; i++)
if(!Character.isWhitespace(pString.charAt(i)))
return false;
return false;
}
결론은 다음과 같습니다.
isEmpty take " " as a character but isBlank not. Rest both are same.
String is Blank() Method에서 구글의 상위 결과이기 때문에 답변드립니다.
Java 11 이후를 사용하는 경우 String 클래스 isBlank() 메서드를 사용할 수 있습니다.이 메서드는 Apache Commons String Utils 클래스와 동일한 작업을 수행합니다.
이 방법의 예에 대해 적은 투고를 했습니다.여기서 읽어주세요.
언급URL : https://stackoverflow.com/questions/23419087/stringutils-isblank-vs-string-isempty
'programing' 카테고리의 다른 글
Storybook의 Vuex 저장소가 정의되지 않았습니다. (0) | 2022.08.27 |
---|---|
(Java) 패키지 구성에 대한 베스트 프랙티스가 있습니까? (0) | 2022.08.27 |
범용 유형의 java.util을 가져옵니다.목록. (0) | 2022.08.27 |
상태 변경 후 v-if를 사용하여 요소 숨기기 (0) | 2022.08.27 |
특정 방법으로 Vue.js Vuex 모듈 자동 등록 (0) | 2022.08.27 |