티스토리 뷰

728x90
반응형

String API, isBlank() vs isEmpty()

우린 Android 에서 java 언어로 String 의 null or empty check 를 TextUtils.isEmpty() 로 하곤 했을 것이다.

코틀린에서는 String 클래스 내 API 로 isBlank() 와 isEmpty() 두 가지를 제공한다.

사용 시 자주 헷갈리는 두 API 차이를 분석해보자.

isBlank()

fun CharSequence.isBlank(): Boolean

문자열이 비어 있거나 공백 문자만으로 구성되어 있으면 true 를 리턴한다.

Kotlin, isBlank

isEmpty()

fun CharSequence.isEmpty(): Boolean

문자열이 비어있으면 true 를 리턴한다.

Kotlin, isEmpty


두 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
공지사항
최근에 올라온 글