Символы
Тип Char представляет один символ в виде 16-битной кодовой единицы UTF-16.
Используйте Char для отдельных символов, например букв, цифр, знаков препинания или пробелов. Для последовательностей символов используйте String.
Синтаксис
Чтобы объявить символ, заключите его значение в одинарные кавычки (' '). Можно явно указать тип Char или позволить Kotlin вывести его из значения:
val letter: Char = 'a' // Kotlin infers Char because the values are written in single quotes val digit = '1' val symbol = '!' val space = ' ' val separator = ':'
Литерал символа должен содержать ровно один символ. В противном случае компилятор Kotlin сообщит об ошибке:
val invalid = 'AB' // Error val invalidEmpty = '' // Error
Допускающие значение null значения
Чтобы хранить значение, допускающее null, используйте Char?:
val maybeAbsent: Char? = null
Поддержка Unicode
В Kotlin значения Char представлены 16-битными кодовыми единицами UTF-16. Это означает, что один Char хранит одну кодовую единицу UTF-16, которая не обязательно соответствует одному полному символу Unicode.
Основная многоязычная плоскость
Один Char может хранить значения в диапазоне от \u0000 до \uFFFF. Этот диапазон охватывает основную многоязычную плоскость (BMP), в которую входят символы почти всех современных языков и множество знаков.
Чтобы указать символ с помощью значения Unicode, используйте \u, за которым следует четырёхзначное шестнадцатеричное значение из таблицы Unicode:
val unicodeNumber = '\u0031' // Equals '1'
Дополнительные символы
Символы Unicode за пределами BMP, например эмодзи и некоторые символы исторических письменностей, нельзя представить одним Char. В UTF-16 они кодируются как суррогатная пара, в которой два значения Char вместе представляют один символ Unicode в String:
fun main() {
//sampleStart
val emoji = "🥦"
println(emoji.length) // 2
println(emoji[0]) // First surrogate
println(emoji[1]) // Second surrogate
//sampleEnd
}
Управляющие последовательности
Используйте управляющие последовательности для специальных символов, которые сложно вводить непосредственно в исходном коде или которые имеют особое значение.
Каждая управляющая последовательность начинается с обратной косой черты (\).
Поддерживаемая последовательность |
Описание |
|---|---|
|
Табуляция |
|
Удаление предыдущего символа |
|
Перевод строки (LF) |
|
Возврат каретки (CR) |
|
Одинарная кавычка |
|
Двойная кавычка |
|
Обратная косая черта |
|
Знак доллара |
Например:
val newLine = '\n' val dollar = '\$' val backslash = '\\'
Операции
Char поддерживает сравнение, проверку, изменение регистра и явное преобразование в числовой тип.
Сравнение символов
Для сравнения значений Char используйте стандартные операторы сравнения, например ==, !=, <, >, <= и >=.
Kotlin сравнивает значения Char по их числовым значениям Unicode и возвращает значение Boolean:
val before = 'a' < 'b' // true val after = 'c' > 'd' // false val different = 'A' == 'a' // false val equal = 'A' == 'A' // true
Обработка символов
В Kotlin есть функции для проверки символов и изменения их регистра. Например:
fun main() {
//sampleStart
val myChar = 'A'
// Checks if the character represents a digit
println(myChar.isDigit()) // false
// Checks if the character represents an uppercase letter
println(myChar.isUpperCase()) // true
// Returns a lowercase version
println(myChar.lowercaseChar()) // 'a'
//sampleEnd
}
Арифметические операции с символами
Можно создать другое значение символа, прибавив или вычтя целое число:
fun main() {
//sampleStart
val a = 'a'
println(a + 1) // b
println(a + 2) // c
println(a - 32) // A
//sampleEnd
}
Также можно использовать операторы инкремента (++) и декремента (--) в префиксной и постфиксной формах с изменяемыми переменными:
fun main() {
//sampleStart
var a = 'A'
a += 10
println(a) // 'K'
println(++a) // 'L' prefix increment
println(a++) // 'L' postfix increment
println(a) // 'M'
println(--a) // 'L' prefix decrement
println(a--) // 'L' postfix decrement
println(a) // 'K'
//sampleEnd
}
Преобразование символов
Для преобразования Char в числовой тип используйте явное преобразование:
-
Используйте
.code, чтобы получить числовое значение Unicode символа:fun main() { //sampleStart val letter = 'A' println(letter.code) // 65 //sampleEnd } -
Если символ представляет десятичную цифру, используйте
digitToInt():fun main() { //sampleStart val digit = '7' println(digit.digitToInt()) // 7 //sampleEnd }
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/characters.html