Найти в Дзене
Уроки по программированию

Проверка, пуста ли строка в Kotlin

В зависимости от требований к null-значениям и других условий, в Kotlin есть несколько функций-расширений, которые помогают определить, пуста ли строка. В этом коротком руководстве мы познакомимся с этими функциями и узнаем, как проверить, пуста ли строка или состоит ли она только из пробелов.
Строка считается пустой, если её длина равна нулю. Чтобы проверить, является ли не-null строка пустой, можно использовать функцию isEmpty(): val empty = ""
assertTrue { empty.isEmpty() } А чтобы проверить, что строка не пуста, можно использовать не только отрицание, но и функцию isNotEmpty(): val nonEmpty = "42"
assertTrue { nonEmpty.isNotEmpty() } Эти функции применимы не только к строкам (String), но и к другим типам CharSequence, например StringBuilder: val sb = StringBuilder()
assertTrue { sb.isEmpty() } Если строка может быть nullable, можно использовать isNullOrEmpty(): val nullStr: String? = null
val emptyNullable: String? = ""
assertTrue { nullStr.isNullOrEmpty() }
assertTrue { emptyNul
Оглавление

1. Обзор

В зависимости от требований к null-значениям и других условий, в Kotlin есть несколько функций-расширений, которые помогают определить, пуста ли строка.

В этом коротком руководстве мы познакомимся с этими функциями и узнаем, как проверить, пуста ли строка или состоит ли она только из пробелов.

2. Пустые строки


Строка считается пустой, если её длина равна нулю. Чтобы проверить, является ли
не-null строка пустой, можно использовать функцию isEmpty():

val empty = ""
assertTrue { empty.isEmpty() }

А чтобы проверить, что строка не пуста, можно использовать не только отрицание, но и функцию isNotEmpty():

val nonEmpty = "42"
assertTrue { nonEmpty.isNotEmpty() }

Эти функции применимы не только к строкам (String), но и к другим типам CharSequence, например StringBuilder:

val sb = StringBuilder()
assertTrue { sb.isEmpty() }

Если строка может быть nullable, можно использовать isNullOrEmpty():

val nullStr: String? = null
val emptyNullable: String? = ""

assertTrue { nullStr.isNullOrEmpty() }
assertTrue { emptyNullable.isNullOrEmpty() }

2.1. Упрощение условной логики


Иногда при работе с пустыми значениями нам нужно использовать конструкцию if-else:

val ipAddress = request.getHeader("X-FORWARDED-FOR")
val source = if (ipAddress.isEmpty()) "default-value" else ipAddress

Начиная с Kotlin 1.3, можно писать более декларативно, используя ifEmpty():

val source = request.getHeader("X-FORWARDED-FOR").ifEmpty { "default-value" }

Такой код проще и лаконичнее.

3. Пробельные строки (blank)


Строка считается
пустой с пробелами (blank), если её длина равна нулю или она состоит только из пробелов и табуляций. Проверяется это с помощью функции isBlank():

val blank = " "
val empty = ""
val notBlank = " 42"

assertTrue { empty.isBlank() }
assertTrue { blank.isBlank() }
assertTrue { notBlank.isNotBlank() }

Функция isNotBlank() аналогична isNotEmpty(), но применяется к строкам, содержащим только пробелы.

Для nullable-строк используется isNullOrBlank():

val nullStr: String? = null
val blankNullable: String? = " "

assertTrue { nullStr.isNullOrBlank() }
assertTrue { blankNullable.isNullOrBlank() }

Если строка — null или состоит только из пробелов, функция вернёт true.

Также, как и ifEmpty(), существует функция ifBlank(), которая позволяет задать значение по умолчанию для таких строк.

4. Заключение

В этом руководстве мы рассмотрели различные способы проверки строк в Kotlin: на пустоту, пробелы и null. Kotlin предоставляет компактные и выразительные функции для работы с такими случаями.

Оригинал статьи: https://www.baeldung.com/kotlin/check-empty-string