Функция codePoints
Функция codePoints
возвращает поток кодовых точек IntStream
,
содержащихся в текущей строке StringBuilder
. Кодовые точки представляют
собой числовые значения символов Unicode, включая символы за пределами
базовой многоязыковой плоскости (BMP), которые требуют двух char
для представления (суррогатные пары).
Синтаксис
fun codePoints(): IntStream
Пример
Получим поток кодовых точек из StringBuilder
:
val sb = StringBuilder("Hello")
val codePointsStream = sb.codePoints()
codePointsStream.forEach { println(it) }
Результат выполнения кода:
Int 72
Int 101
Int 108
Int 108
Int 111
Пример
Работа с символами Unicode за пределами BMP:
val sb = StringBuilder("A𐐀B")
val codePoints = sb.codePoints().toArray()
println("Code points count: " + codePoints.size)
codePoints.forEach { println("U+" + it.toString(16).uppercase() + " : " + it) }
Результат выполнения кода:
Code points count: 3
U+41 : 65
U+10400 : 66560
U+42 : 66
Пример
Сравнение с функцией chars
:
val sb = StringBuilder("A𐐀B")
val charsCount = sb.chars().count()
val codePointsCount = sb.codePoints().count()
println("Chars count: " + charsCount)
println("Code points count: " + codePointsCount)
Результат выполнения кода:
Chars count: 4
Code points count: 3