Функция codePoints

Функция codePoints возвращает поток кодовых точек IntStream, содержащихся в текущей строке StringBuilder. Кодовые точки представляют собой числовые значения символов Unicode, включая символы за пределами базовой многоязыковой плоскости (BMP), которые требуют двух char для представления (суррогатные пары).

Синтаксис

kotlinfun codePoints(): IntStream

Пример

Получим поток кодовых точек из StringBuilder:

kotlinval sb = StringBuilder("Hello")
val codePointsStream = sb.codePoints()
codePointsStream.forEach { println(it) }

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

kotlinInt 72
Int 101
Int 108
Int 108
Int 111

Пример

Работа с символами Unicode за пределами BMP:

kotlinval sb = StringBuilder("A𐐀B")
val codePoints = sb.codePoints().toArray()
println("Code points count: " + codePoints.size)
codePoints.forEach { println("U+" + it.toString(16).uppercase() + " : " + it) }

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

kotlinCode points count: 3
U+41 : 65
U+10400 : 66560
U+42 : 66

Пример

Сравнение с функцией chars:

kotlinval sb = StringBuilder("A𐐀B")

val charsCount = sb.chars().count()
val codePointsCount = sb.codePoints().count()

println("Chars count: " + charsCount)
println("Code points count: " + codePointsCount)

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

kotlinChars count: 4
Code points count: 3

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

  • функцию chars,
    которая возвращает поток кодовых единиц char
  • функцию length,
    которая возвращает длину строки в символах
  • функцию toString,
    которая преобразует StringBuilder в строку
  • функцию append,
    которая добавляет содержимое в конец StringBuilder