Kotlin – 유효성 체크 isEmpty, isBlank, isNullOrEmpty

분명 개발을 하면서 문자열의 유효성을 체크해야 되는 경우가 꼭 있습니다. 이를테면 사용자가 필드에 값을 입력하였는지를 판단하는 때가 있겠네요.

String str = "";
boolean isEmpty = str == null || str.length() < 1;

이런 식의 유효성 체크 방법은 매우 익숙하실 겁니다. Kotlin 에서는 이런 유효성 체크 로직에 대해 몇 가지 함수들을 제공합니다. 대표적으로 isEmpty(), isBlank(), isNullOrEmpty, isNullOrBlank 가 있는데요, 이 글에서는 이 함수들이 각각 어떻게 결괏값을 내주는지 알아보겠습니다.

isEmpty()

isEmpty는 문자열의 length를 기준으로, 1 이상일 경우에 false, 1 미만일 경우에는 true를 반환합니다.

val str : String = "   "
System.out.println(str.isEmpty())

문자열의 길이는 공백도 포함하며 계산되므로, 다음과 같은 코드에는 false가 출력되겠지요.

isBlank()

isBlank는 문자열안의 모든 공백을 제외했을때, 비어있는 상태일 경우 true, 비어있지 않을 경우에는 false 를 반환합니다.

val str : String = "   "
System.out.println(str.isBlank())

다음과 같은 코드에서는 true가 출력됩니다. http 통신 과정에서는 공백의 결괏값이 딸려오는 경우가 아주 종종 있는데 그럴 경우에 유용하게 사용할 수 있겠습니다.

isNullOrEmpty(), isNullOrBlank()

isNullOrEmpty나 isNullOrBlank 함수는 empty나 blank를 체크하기 전에 null인지 검사를 선행합니다. 본 게시글 맨 위의 Java 코드는 isNullOrEmpty 와 대응하겠군요.

val str : String? = null
System.out.println(str.isNullOrBlank())
System.out.println(str.isNullOrEmpty())

이 코드는 당연하게도 둘다 true를 반환하겠군요

val str : String? = "    "
System.out.println(str.isNullOrBlank())
System.out.println(str.isNullOrEmpty())

이러면 어떨까요? 예상하신대로 첫번째 줄은 true, 두번째 줄은 false를 반환합니다.

Leave a Reply

Your email address will not be published. Required fields are marked *