반응형
둘은 언뜻 같아보이지만 다르다. 결론부터 말하면 isBlank는 공백을 true로 판단하고 Empty는 공백도 false로 판단한다.
값(value) | isEmpty() | isBlank() |
null | true | true |
"" | true | true |
" " | false | true |
"sdnfi" | false | false |
" sdnfi " | false | false |
둘 사이의 동작방식 차이는 무얼까? isEmpty를 살펴보자.
public inline fun CharSequence?.isNullOrEmpty(): Boolean {
contract {
returns(false) implies (this@isNullOrEmpty != null)
}
return this == null || this.length == 0
}
null 혹은 문자열의 길이가 0인지를 체크한다. isBlank는 찾아보지 않았지만 반대의 로직으로 동작할 것이다.(거기에 추가적으로 들어갈 순 있겠지만...^^)
반응형
댓글