programing

StringUtils.isBlank() vs String.isEmpty()

newsource 2022. 8. 27. 09:48

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 이후)

java.lang.String.isEmpty()

@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한다면foonull 입니다.

StringUtils.isBlank또한 반환됩니다.true공백에 대해서만:

isBlank(String str)

문자열이 공백("") 또는 null인지 확인합니다.

StringUtils.isBlank(foo)는 널체크를실행합니다.퍼포먼스를 하면foo.isEmpty()그리고.foonull입니다. 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