Функция chars
Функция chars возвращает IntStream,
содержащий кодовые точки Unicode каждого символа
в текущем объекте StringBuilder. Поток можно
использовать для дальнейшей обработки символов
с помощью операций стримов.
Синтаксис
fun chars(): IntStream
Пример
Получим поток кодовых точек из StringBuilder и преобразуем его в массив:
val sb = StringBuilder("abcde")
val stream: IntStream = sb.chars()
val codes: IntArray = stream.toArray()
println(codes.contentToString())
Результат выполнения кода:
IntArray [97, 98, 99, 100, 101]
Пример
Используем поток для фильтрации символов:
val sb = StringBuilder("a1b2c3")
val digits = sb.chars()
.filter { it in 48..57 }
.toArray()
println(digits.contentToString())
Результат выполнения кода:
IntArray [49, 50, 51]
Пример
Преобразуем кодовые точки обратно в символы:
val sb = StringBuilder("hello")
val chars = sb.chars()
.mapToObj { it.toChar() }
.collect(Collectors.toList())
println(chars)
Результат выполнения кода:
List<Char> ['h', 'e', 'l', 'l', 'o']
Пример
Подсчитаем количество символов в верхнем регистре:
val sb = StringBuilder("Hello WORLD")
val upperCaseCount = sb.chars()
.filter { Character.isUpperCase(it) }
.count()
println(upperCaseCount)
Результат выполнения кода:
Long 2
Примечания
Функция chars возвращает поток примитивных
целых чисел int, которые представляют
кодовые точки Unicode символов в строке.
Для работы с потоком необходимо импортировать
java.util.stream.IntStream.
Смотрите также
-
функцию
codePoints,
которая возвращает поток кодовых точек Unicode -
функцию
get,
которая возвращает символ по указанному индексу -
функцию
subSequence,
которая возвращает подпоследовательность символов -
функцию
toCharArray,
которая преобразует StringBuilder в массив символов