[java] StringUtils.isBlank () 및 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.isBlankjava.lang.String.isEmpty) 의 차이점이 있습니까?



답변

StringUtils.isBlank()문자열의 각 문자가 공백 문자인지 확인하거나 문자열이 비어 있거나 null인지 확인합니다. 이것은 문자열이 비어 있는지 확인하는 것과는 완전히 다릅니다.

링크 된 문서에서 :

문자열이 공백인지, 비어 있는지 ( “”) 또는 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의 그들이 반환하지 않는 것을 제외하고 .isEmpty ()는 동일하게 작동 true을 위해 null.

java.lang.String.isBlank()

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

StringUtils.isEmpty

 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 isEmpty 확인 + 텍스트에 공백 문자 만 포함되어 있는지 확인합니다.

추가 조사를위한 유용한 링크 :


답변

StringUtils.isBlank() 또한 null을 확인하지만 다음과 같습니다.

String foo = getvalue("foo");
if (foo.isEmpty())

발생합니다 NullPointerException경우 foo는 null입니다.


답변

StringUtils.isBlanktrue공백 만 반환 합니다.

isBlank (문자열 str)

문자열이 공백인지, 비어 있는지 ( “”) 또는 null인지 확인합니다.


답변

StringUtils.isBlank(foo)널 검사를 수행합니다. 수행 foo.isEmpty()하고 foonull 인 경우 NullPointerException이 발생합니다.


답변

StringUtils.isBlank ()는 공백 (공백)과 null 문자열에 대해서도 true를 반환합니다. 실제로 Char 시퀀스를 잘라낸 다음 확인을 수행합니다.

StringUtils.isEmpty ()는 String 매개 변수에 charsequence가 없거나 String 매개 변수가 null 인 경우 true를 반환합니다. 차이점은 String 매개 변수에 소용돌이가 포함되어 있으면 isEmpty ()가 false를 반환한다는 것입니다. 공백은 비어 있지 않은 상태로 간주합니다.