Строки в Kotlin — Изучаем тип string

Числа лежат в основе программирования, но вы будете работать не только с ними. Текстовые данные также является очень распространенным типом. Это могут быть имена людей, адреса или даже книги. Все это примеры текста, который может потребоваться обработать приложению.

Содержание статьи

Большинство языков программирования хранит текст в виде типа данных, который называется строкой, или string. Данный урок познакомит вас со строками, сначала давая базовую информацию о концепции строк, а затем показывая, как их использовать в Kotlin.

Как компьютер воспринимает строки

Компьютеры воспринимают строки как набор отдельных символов. В прошлых уроках вы узнали, что числа представляют собой язык процессоров, и любые языки программирования можно свести к необработанным числам. Строки ничем не отличаются!

Это может показаться очень странным. Как символы могут быть числами? Компьютер умеет переводить символ на собственный язык. Он это делает, присваивая каждому символу другой номер. Это формирует двустороннее отображение символа в число, которое называется набором символов.

При нажатии клавиши символа на клавиатуре вы передаете компьютеру номер символа. Текстовый редактор преобразует число в изображение символа и показывает вам это изображение.

Unicode

Изолированно, компьютер может выбирать любое сопоставление набора символов, которое ему нравится. Если нужно, чтобы буква а была равна числу 10, пусть так и будет. Но когда компьютеры начинают общаться друг с другом, им необходимо использовать общий набор символов. Ведь при задействовании разных наборов символов возникает путаница, так как компьютеры рассматривают разные образцы символов.

На протяжении многих лет существовало несколько стандартов, но самым современным стандартом является Unicode. Он определяет отображение набора символов, которое сегодня используют почти все компьютеры.

На заметку: Подробнее об Unicode можете прочитать на официальном сайте.

В качестве примера рассмотрим слово cafe. Стандарт Unicode указывает, что буквы данного слова нужно представить следующим образом:

unicode

Число, связанное с каждым символом, называется кодовой точкой. В приведенном выше примере c использует кодовую точку 99, a использует кодовую точку 97 и так далее.

Конечно, Unicode предназначен не только для простых латинских символов, используемых в английском языке вроде c, a, f и e. Он также позволяет отображать символы других языков. Слово cafe происходит от французского, в котором оно пишется как café. Unicode отображает эти символы следующим образом:

unicode

Далее дан пример с использование китайских символов (Переводчик Google перевел символы как “Computer Programming”):

unicode

Вы наверняка не раз использовали смайлики, или эмодзи. По сути они являются символами, преобразованными с помощью Unicode. К примеру:

смайлики в unicode

Это только два символа. Кодовыми точками данных символов являются довольно крупные числа, но каждое из них представляет собой только одну кодовую точку. Компьютер воспринимает такие смайлики точно так же, как и любые другие символы.

На заметку: Слово «эмодзи» происходит от японского, где «э» значит «картинка», а «модзи» значит «символ».

Char и String — Символы и строки в Kotlin

Kotlin, как и любой хороший язык программирования, может работать напрямую с символами и строками. Для этого используются типы Char и String. Далее мы подробно рассмотрим данные типы данных и то, как с ними работать.

Тип данных Char может хранить один символ, который должен быть обрамлен в одинарные кавычки. К примеру:

Этот тип данных предназначен для хранения только одного символа. С другой стороны, тип String хранит много символов, которые должны помещаться внутри двойных кавычек. К примеру:

Все просто! Правая часть данного выражения представляет собой строковый литерал. Это синтаксис Kotlin для представления строки.

Здесь также применяется вывод типа. Если вы удалите тип в приведенном выше объявлении переменной, Kotlin сам поймет, что stringDog является константой типа String:

Конкатенация строк в Kotlin

После создания строк вы можете совершить над ними различные действия. Одним из самых популярных способов манипуляции со строкой является ее объединение с другой строкой.

В Kotlin это делается довольно просто: с помощью оператора сложения +. Строки складываются точно так же, как числа:

Вам нужно объявить переменную message, а не константу, потому что ее нужно будет модифицировать. Можно складывать строковые литералы вместе, как в первой строке, и можно складывать строковые переменные или константы вместе, как в последней строке.

Также возможно добавлять символы прямо в строку. Это похоже на работу с числами, если одна переменная типа Int, а другое — Double.

Для добавления символа в строку сделайте следующее:

Нет нужды конвертировать Character в String перед добавлением в message, Kotlin сделает это сам.

Шаблонные строки в Kotlin

В Kotlin можно создавать строки, используя шаблоны. Они используют специальный синтаксис, который позволяет создать строку, которая легко читается:

Это читается удобнее, чем пример из предыдущего раздела. Это расширение синтаксиса строкового литерала, с помощью которого заменяются определенные части строки другими значениями. Просто добавьте перед значением, которое требуется вставить, символ $.

Этот синтаксис используется и для создания строк из других типов данных, к примеру, чисел:

В шаблоне используется Double. В конце, константа oneThirdLongString будет содержать следующее:

Для представления одной трети десятичной дроби потребовалось бы бесконечное количество символов, потому что это периодическая десятичная дробь. Использование строковых шаблонов с Double не позволяет управлять точностью.

Это неприятные последствие использования строковых шаблонов — они просты, но не дают возможности настраивать вывод.

Внутри строкового шаблона также можно поместить выражения, поставив за символом $ пару фигурных скобок, которые содержат выражение:

Результат будет прежним.

Многострочный текст в Kotlin

В Kotlin есть удобный способ записи многострочного текста. Он может быть полезен при необходимости размещения очень длинной строки.

Это делается следующим образом:

Три двойные кавычки указывают на многострочный текст. Первая и последняя строки не становятся частью содержимого переменной или константы. Это удобно, так как вам не нужно размещать три двойные кавычки в одной строке с содержимым. Что-то похожее мы делали при изучении многострочных комментариев.

Вывод кода будет следующим:

Обратите внимание на вертикальную черту | в начале строк и на вызов функции trimMargin(). Такая запись предотвращает появление в строке начальных пробелов, позволяя форматировать код с красивыми отступами, не влияя на вывод.

Задания для проверки

  1. Создайте строковую константу firstName, значением которой будет ваше имя. Также создайте строковую константу lastName, значением которой будет ваша фамилия;
  2. Создайте строковую константу fullName, сложив константы firstName и lastName вместе и разделив их пробелом;
  3. Используя строковые шаблоны, создайте строковую константу myDetails, которая использует константу fullName для создания представляющей вас строки. К примеру, "Привет, меня зовут Иван Иванов."
4.2 5 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x