Android 개발/Kotlin

isNullOrEmpty 와 isNullOrBlank 의 차이점 # Kotlin

Developer88 2023. 4. 9. 23:58
반응형

오늘은 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 의 차이점에 대해서 정리해 보았습니다.

 

728x90