Введение в символы в Kotlin
Давайте теперь будем разбираться с одним символом.
Строка - это цепочка символов. Буквы в ней стоят друг за другом, и их может быть сколько угодно: ни одной, одна или много. Один символ - отдельное значение, а не строка из одной буквы. В него входит ровно одна буква, цифра, пробел или знак. Две буквы в одно такое значение не помещаются.
В Kotlin для одного символа есть отдельный тип
Char. Это не строка String, даже
если в строке всего одна буква.
Слово cat - это три символа. Текст "12" -
два символа, цифра 1 и цифра 2, а не число двенадцать.
Пробел между словами тоже символ: на экране его видно
как пустое место, а в цепочке он занимает свое место
наравне с буквой.
Обычная буква, английская или русская, занимает
2 байта, 16 бит. Это та самая единица
UTF-16, которой в строке записана такая буква.
В UTF-8 английская буква занимала 1 байт,
а русская - 2. Внутри строки Kotlin обе
занимают по 2 байта. Отдельный символ
занимает столько же: это одна такая единица.
Шестнадцать бит дают 65536 разных комбинаций.
Этого хватает на английские и русские буквы, цифры
и обычные знаки. У каждой такой буквы один номер
Юникода, и в символе хранится ровно она.
Редкий символ в эти комбинации не входит. Он занимает
два таких значения, 4 байта. На экране это
по-прежнему один значок, а в строке - две единицы
UTF-16. В примерах этого раздела такие символы
не используем.
Пять букв hello - это пять символов и 10
байт строки. Один символ из этой цепочки - по-прежнему
2 байта. Строка из одной буквы на экране выглядит
так же, но остается цепочкой, только из одного звена.
Как записать один символ в программе, разберем в следующем уроке.