나는 다음과 같은 코드를 만났다.
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인지 확인합니다. 이것은 문자열이 비어 있는지 확인하는 것과는 완전히 다릅니다.
링크 된 문서에서 :
문자열이 공백인지, 비어 있는지 ( “”) 또는 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
.
답변
@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.isBlank
true
공백 만 반환 합니다.
isBlank (문자열 str)
문자열이 공백인지, 비어 있는지 ( “”) 또는 null인지 확인합니다.
답변
StringUtils.isBlank(foo)
널 검사를 수행합니다. 수행 foo.isEmpty()
하고 foo
null 인 경우 NullPointerException이 발생합니다.
답변
StringUtils.isBlank ()는 공백 (공백)과 null 문자열에 대해서도 true를 반환합니다. 실제로 Char 시퀀스를 잘라낸 다음 확인을 수행합니다.
StringUtils.isEmpty ()는 String 매개 변수에 charsequence가 없거나 String 매개 변수가 null 인 경우 true를 반환합니다. 차이점은 String 매개 변수에 소용돌이가 포함되어 있으면 isEmpty ()가 false를 반환한다는 것입니다. 공백은 비어 있지 않은 상태로 간주합니다.