티스토리 뷰
728x90
반응형
우린 Android 에서 java 언어로 String 의 null or empty check 를 TextUtils.isEmpty()
로 하곤 했을 것이다.
코틀린에서는 String 클래스 내 API 로 isBlank() 와 isEmpty() 두 가지를 제공한다.
사용 시 자주 헷갈리는 두 API 차이를 분석해보자.
isBlank()
fun CharSequence.isBlank(): Boolean
문자열이 비어 있거나 공백 문자만으로 구성되어 있으면
true
를 리턴한다.
fun CharSequence.isEmpty(): Boolean
문자열이 비어있으면
true
를 리턴한다.
두 API 에 대한 설명을 코틀린 공식 문서에서 가져왔다.
정의만 보아서는 확실히 이해가 되지 않기 때문에 간단한 테스트를 해보았다.
Test String
val s1 = ""
val s2 = " "
val s3 = "\\n"
val s4 = "NotEmpty"
val s5 = """
""".trimIndent()
테스트 결과
// isEmpty()
s1 true
s2 false
s3 false
s4 false
s5 false
// isBlank()
s1 true
s2 true
s3 true
s4 false
s5 true
결론
isEmpty() 는 단순히 문자열이 비어 있는지 여부를 검사하며,
isBlank() 는 문자열이 개행 문자를 포함하고 있는지 여부까지 검사한다.
즉, 아래의 두 결과는 일치한다는 것을 알 수 있다.
val s2 = " "
println("s2 ${s2.isBlank()}") // print true
println("s2 ${s2.trim().isEmpty()}") // print true
반응형
'프로그래밍 > Kotlin' 카테고리의 다른 글
[Kotlin] primary constructor call expected (0) | 2018.08.27 |
---|---|
[Kotlin] lateinit var is initialized (0) | 2018.08.25 |
[Kotlin] Kotlin 의 특수기호 (0) | 2018.08.25 |
[Kotlin] lateinit vs lazy (0) | 2018.08.23 |
[Kotlin] 배열에서 초기화 (0) | 2018.08.10 |
공지사항
최근에 올라온 글