Типы Character и String

Последнее обновление: 25.12.2017

Для работы с текстом применяются два типа данных: Character и String. Character представляет отдельный символ, а String - строку из нескольких символов. При этом надо отметить, что String - это не просто набор объектов Character, это отдельный тип, который по функциональности отличается.

Самый простой способ определения строки и символов представляет использование строковых литералов - значений в двойных кавычках:

var a: Character = "a"
var hello: String = "hello"

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

var a: Character = "abc"

Строки могут быть пустыми, то есть по сути не содержать ничего, но при этом быть инициализированными:

var str1: String = ""
var str2: String = String()

Пустая строка создается при помощи присвоения "" или при помощи инициализатора String()

Управляющие последовательности

Строка может содержать специальные символы, которые называются управляющими последовательностями или эскейп-последовательностями. Основные из них:

  • \n: перевод на новую строку

  • \t: табуляция

  • \": кавычка

  • \\: обратный слеш

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

let text = "ООО \"Рога и копыта 777\" \nГен. директор: Иванов"
print(text)

XCode Playground интерпретирует данную строку следующим образом:

ООО "Рога и копыта 777" 
Ген. директор: Иванов

Но, начиная с версии языка 4.0, для создания многострочных строк можно заключать строку в тройные кавычки """:

let text = """
ООО "Рога и копыта 777"
Ген. директор: Иванов
"""
print(text)

Результат будет тот же, что и в примере выше. Кроме того, внутри многострочных строк кавычки не надо экранировать с помощью обратного слеша.

Преобразование в строку

Для преобразования значений других типов данных к строке надо передать преобразуемое значение в инициализатор:

var number: Int = 22
var str: String = String(number)	// "22"

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

Для конкатенации (объединения) строк используется оператор + (плюс):

var str: String = ""	// ""
str += "hello"			// "hello"
str = str + " world"	// "hello word"

Интерполяция строк

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

var age: Int = 22
var str: String = "Age: \(age)"		// "Age: 22"

var weight: Double = 70.58
str = "Age: \(age) and weight: \(weight)"		// "Age: 22 and weight: 70.58"

Также интерполяция может содержать сложные выражения и операции, например:

let x1 = 5
let x2 = 6
let str = "x1 + x2 = \(x1 + x2)"
print(str)          // x1 + x2 = 11
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850