Функция isHighSurrogate

Функция isHighSurrogate проверяет, является ли указанный символ старшим суррогатным символом в UTF-16. Старшие суррогаты используются для представления символов Unicode за пределами Basic Multilingual Plane (BMP) в диапазоне от U+10000 до U+10FFFF. Принимает параметр типа Char и возвращает Boolean.

Импорт

kotlinimport kotlin.text.isHighSurrogate

Синтаксис

kotlinfun Char.isHighSurrogate(): Boolean

Пример

Проверим, является ли символ 'A' старшим суррогатом:

kotlinval char: Char = 'A'
val res: Boolean = char.isHighSurrogate()
println(res)

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

kotlinfalse

Пример

Проверим старший суррогатный символ:

kotlinval highSurrogate: Char = '\uD800'
val res: Boolean = highSurrogate.isHighSurrogate()
println(res)

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

kotlintrue

Пример

Проверим младший суррогатный символ:

kotlinval lowSurrogate: Char = '\uDC00'
val res: Boolean = lowSurrogate.isHighSurrogate()
println(res)

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

kotlinfalse

Пример

Проверим несколько символов в строке:

kotlinval text: String = "A\uD800\uDC00B"

for (char in text) {
  val isHigh: Boolean = char.isHighSurrogate()
  println("Char '$char' is high surrogate: $isHigh")
}

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

kotlinChar 'A' is high surrogate: false
Char '?' is high surrogate: true
Char '?' is high surrogate: false
Char 'B' is high surrogate: false

Пример

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

kotlinval text: String = "Hello\uD83D\uDE00World"
var i: Int = 0

while (i < text.length) {
  val char: Char = text[i]
  
  if (char.isHighSurrogate()) {
    println("Found high surrogate at position $i")
    i += 2
  } else {
    println("Regular character at position $i: $char")
    i++
  }
}

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

kotlinRegular character at position 0: H
Regular character at position 1: e
Regular character at position 2: l
Regular character at position 3: l
Regular character at position 4: o
Found high surrogate at position 5
Regular character at position 7: W
Regular character at position 8: o
Regular character at position 9: r
Regular character at position 10: l
Regular character at position 11: d

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

  • функцию isLowSurrogate,
    которая проверяет, является ли символ младшим суррогатом
  • функцию isSurrogate,
    которая проверяет, является ли символ суррогатом любого типа
  • функцию isLetter,
    которая проверяет, является ли символ буквой
  • функцию isDigit,
    которая проверяет, является ли символ цифрой