Функция find

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

Синтаксис

kotlininline fun CharSequence.find(
  predicate: (Char) -> Boolean
): Char?

Пример

Найдем первый символ в строке "abcde", который равен 'c':

kotlinval str = "abcde"
val res = str.find { it == 'c' }
println(res)

Результат выполнения кода:

kotlinChar c

Пример

Найдем первый цифровой символ в строке "hello123world":

kotlinval str = "hello123world"
val res = str.find { it.isDigit() }
println(res)

Результат выполнения кода:

kotlinChar 1

Пример

Найдем первый символ в верхнем регистре в строке "hello World":

kotlinval str = "hello World"
val res = str.find { it.isUpperCase() }
println(res)

Результат выполнения кода:

kotlinChar W

Пример

Попробуем найти символ, которого нет в строке. В этом случае функция вернет null:

kotlinval str = "abcde"
val res = str.find { it == 'z' }
println(res)

Результат выполнения кода:

kotlinnull

Пример

Использование функции с безопасным вызовом для обработки возможного null результата:

kotlinval str = "abcde"
val foundChar = str.find { it == 'c' }

if (foundChar != null) {
  println("Found: $foundChar")
} else {
  println("Not found")
}

Результат выполнения кода:

kotlinFound: c

Смотрите также

  • функцию findLast,
    которая ищет последний символ, соответствующий условию
  • функцию indexOf,
    которая ищет первое вхождение подстроки или символа
  • функцию filter,
    которая фильтрует все символы по условию
  • функцию first,
    которая возвращает первый символ или первый символ по условию