개발을 하면서 문자열의 유효성을 체크해야 되는 경우가 있다. 이를테면 사용자가 필드에 값을 입력하였는지를 판단하는 때가 있다.
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를 반환한다.