오늘은 Kotlin의 isNullOrEmpty 와 isNullOrBlank 의 차이점에 대해서 정리해 보겠습니다.
둘은 비슷하기 때문에 잘 알지 않고 사용하는 경우도 있는데요.
오늘 차이를 구분해 보도록 하겠습니다.
1. isNullOrEmpty
이 API는 만약 String이 null 이거나 empty 일 경우 true를 반환해 준다고 설명되어 있습니다.
그런데, empty는 어떤 것을 말하는 것일까요?
비어있다는 뜻 입니다.
즉 ""을 가리킵니다.
String 값에 대해서 ""로 초기화하는 경우도 있는데요.
그대로 아무 값이 없는지 보려면 isNullOrEmpty로 충분합니다.
val xInitValue: String? = ""
println(xInitValue.isNullOrEmpty()) // true
2. isNullOrBlank
위에서 본 isNullOrEmpty와 비슷한데요.
Blank도 뜻은 비워져 있는 공백을 의미하는데요.
둘은 무엇이 차이일까요?
아래 코드로 쉽게 차이를 구분할 수 있습니다.
아래에서 blankString은 공백 즉 whiteSpace를 가지고 있습니다.
유저가 스페이스를 입력해서 공백을 입력하면, 입력된 값은 blankString 과 같겠지요.
이런 whiteSpace는 blank()인지 확인하는 API를 써야 합니다.
val emptyString: String? = ""
val blankString: String? = " "
println(s3.isNullOrEmpty()) // false
println(s1.isNullOrBlank()) // true
Kotlin에서 공백여부까지 체크해야 할 경우라면, isNullOrBlank()를 써 주어야 합니다.
예를 들어서, 유저의 프로필의 이름을 입력받아야 한다고 가정해 보겠습니다.
유저는 실수이던 의도적이건 스페이스키로 블랭크를 입력할 수도 있습니다.
이때 이것에 대해서 방어하기 위해서는 이 isNullOrBlank가 필요한 것입니다.
참고로, 만약 ""로 초기화 되어있다면, isBlank 로도 충분하겠지요.
null의 가능성자체가 없으니까요.
참고로 isBlank는 공식문서에 아래와 같이 나와있습니다.
당연히도, isEmpty까지 같이 체크해 줍니다.
이상으로 isNullOrEmpty 와 isNullOrBlank 의 차이점에 대해서 정리해 보았습니다.
'Android 개발 > Kotlin' 카테고리의 다른 글
Kotlin Escape 에 대한 정리 # RawString Escaped String Literal (0) | 2023.04.30 |
---|---|
Kotlin GroupBy 구현과 정리 # List 그룹핑 (0) | 2023.04.28 |
getOrNull 과 getOrElse 에 대한 정리 # List Kotlin (0) | 2023.04.28 |
Kotlin Pair 와 Map 함수 이용해서 데이터 가공하기 (0) | 2023.04.26 |
Kotlin custom getter 와 setter 구현하기 (0) | 2023.04.11 |
lateinit 에 관한 정리 # Kotlin (0) | 2023.04.07 |
Elvis 연산자 의 활용법 총정리 # null 체크 throw (0) | 2023.01.15 |
require 와 Check 로 코드에 조건 부여하기 # Kotlin (0) | 2023.01.14 |
Java 프로젝트에 Kotlin 추가하기 # Android Studio (0) | 2022.12.14 |
Sealed Class 총정리 feat. enum Class (0) | 2022.10.11 |
댓글