프로그래밍/Kotlin
String API, isBlank() vs isEmpty()
DwEnn
2020. 6. 14. 18:22
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
반응형