Функция chars

Функция chars возвращает IntStream, содержащий кодовые точки Unicode каждого символа в текущем объекте StringBuilder. Поток можно использовать для дальнейшей обработки символов с помощью операций стримов.

Синтаксис

kotlinfun chars(): IntStream

Пример

Получим поток кодовых точек из StringBuilder и преобразуем его в массив:

kotlinval sb = StringBuilder("abcde")
val stream: IntStream = sb.chars()
val codes: IntArray = stream.toArray()
println(codes.contentToString())

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

kotlinIntArray [97, 98, 99, 100, 101]

Пример

Используем поток для фильтрации символов:

kotlinval sb = StringBuilder("a1b2c3")
val digits = sb.chars()
  .filter { it in 48..57 }
  .toArray()
println(digits.contentToString())

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

kotlinIntArray [49, 50, 51]

Пример

Преобразуем кодовые точки обратно в символы:

kotlinval sb = StringBuilder("hello")
val chars = sb.chars()
  .mapToObj { it.toChar() }
  .collect(Collectors.toList())
println(chars)

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

kotlinList<Char> ['h', 'e', 'l', 'l', 'o']

Пример

Подсчитаем количество символов в верхнем регистре:

kotlinval sb = StringBuilder("Hello WORLD")
val upperCaseCount = sb.chars()
  .filter { Character.isUpperCase(it) }
  .count()
println(upperCaseCount)

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

kotlinLong 2

Примечания

Функция chars возвращает поток примитивных целых чисел int, которые представляют кодовые точки Unicode символов в строке. Для работы с потоком необходимо импортировать java.util.stream.IntStream.

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

  • функцию codePoints,
    которая возвращает поток кодовых точек Unicode
  • функцию get,
    которая возвращает символ по указанному индексу
  • функцию subSequence,
    которая возвращает подпоследовательность символов
  • функцию toCharArray,
    которая преобразует StringBuilder в массив символов