LoGin
article thumbnail
반응형

Kotiln에서는 문자열 처리 시 null 안정성을 확보하기 위해 여러 편리한 확장 함수들을 제공합니다.

그중 자주 사용되는 함수는 isNullOrEmpty()와 isNullOrBlank()입니다.

두 함수는 문자열이 null인지, 비어있는지 판단할 때 사용하지만, 미묘한 차이가 있어서 구분해서 사용하는 게 좋습니다.

 

 

 

결론 요약

값이 없거나 빈 문자열만 체크 → isNullOrEmpty()

값이 없거나 빈 문자열 또는 공백만 체크 → isNullOrBlank()

 

isNullOrEmpty()

문자열이 null이거나 길이가 0인 경우에 true를 반환합니다.

문자열이 아예 없거나 빈 문자열("") 일 때만 true 가 되는 함수입니다.

 

val str1: String? = null
val str2: String? = ""
val str3: String? = "   "
val str4: String? = "Hello"

println(str1.isNullOrEmpty())  // true (null)
println(str2.isNullOrEmpty())  // true (빈 문자열)
println(str3.isNullOrEmpty())  // false (공백 문자열은 빈 문자열이 아님)
println(str4.isNullOrEmpty())  // false

 

 


 

isNullOrBlank()

저는 isNullOrEmpty()의 확장판이라고 생각하는데요. 문자열이 null이거나 빈 문자열이거나, 공백으로만 이루어진 문자열일 때도 true를 반환합니다.

 

val str1: String? = null
val str2: String? = ""
val str3: String? = "   "
val str4: String? = "Hello"

println(str1.isNullOrBlank())  // true (null)
println(str2.isNullOrBlank())  // true (빈 문자열)
println(str3.isNullOrBlank())  // true (공백 문자열)
println(str4.isNullOrBlank())  // false

(" ")처럼 공백 문자 (스페이스, 탭, 줄 바꿈 등)만 있을 때 문자열을 의미 없는 값으로 간주하고 싶을 때 사용하면 좋습니다.

 

 

비교

함수명 null 일 때 빈 문자열일 때 ("") 공백 문자열일 때 (" ") 기타
isNullOrEmpty() true true false false
isNullOrBlank() true true true false

 

isNullOrEmpty()는

로그, 데이터 저장, 기본 유효성 검사로 주로 사용하고

 

isNullOrBlank()는

회원가입 이름, 이메일 등 필수 입력값 검사하는데 많이 사용했습니다.

 

백엔드에서 데이터를 다루실 때 띄어쓰기조차 데이터일지 고민해 보고 사용하시면 좋을 것 같습니다.

예를 들어 사용자가 자기소개란에 스페이스바 하나 입력한 것도 소중한 데이터니까요.

 

728x90
반응형
profile

LoGin

@LoGinShin

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!