Учебники

Свифт — Струны

Строки в Swift 4 представляют собой упорядоченную коллекцию символов, например «Hello, World!» и они представлены типом данных Swift 4 String , который, в свою очередь, представляет коллекцию значений типа Character .

Создать строку

Вы можете создать строку либо используя строковый литерал, либо создав экземпляр класса String следующим образом:

Live Demo

// String creation using String literal
var stringA = "Hello, Swift 4!"
print( stringA )

// String creation using String instance
var stringB = String("Hello, Swift 4!")
print( stringB )

//Multiple line string

let stringC = """
Hey this is a
example of multiple Line
string by tutorialsPoint 

"""
print(stringC)

Когда приведенный выше код компилируется и выполняется, он дает следующий результат

Hello, Swift 4!
Hello, Swift 4!
Hey this is a
example of multiple Line
string by tutorialsPoint

Пустой строки

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

Live Demo

// Empty string creation using String literal
var stringA = ""

if stringA.isEmpty {
   print( "stringA is empty" )
} else {
   print( "stringA is not empty" )
}

// Empty string creation using String instance
let stringB = String()

if stringB.isEmpty {
   print( "stringB is empty" )
} else {
   print( "stringB is not empty" )
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

stringA is empty
stringB is empty

Строковые Константы

Вы можете указать, может ли ваша строка быть изменена (или видоизменена), присваивая ее переменной, или она будет постоянной, присваивая ее константе, используя ключевое слово let, как показано ниже —

// stringA can be modified
var stringA = "Hello, Swift 4!"
stringA + = "--Readers--"
print( stringA )

// stringB can not be modified
let stringB = String("Hello, Swift 4!")
stringB + = "--Readers--"
print( stringB )

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Playground execution failed: error: <EXPR>:10:1: error: 'String' is not
convertible to '@lvalue UInt8'
stringB + = "--Readers--"

Строковая интерполяция

Строковая интерполяция — это способ создания нового значения String из набора констант, переменных, литералов и выражений путем включения их значений в строковый литерал.

Каждый элемент (переменная или константа), который вы вставляете в строковый литерал, заключен в пару круглых скобок с префиксом обратной косой черты. Вот простой пример —

Live Demo

var varA = 20
let constA = 100
var varC:Float = 20.0

var stringA = "\(varA) times \(constA) is equal to \(varC * 100)"
print( stringA )

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

20 times 100 is equal to 2000.0

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

Вы можете использовать оператор + для объединения двух строк или строки и символа, или двух символов. Вот простой пример —

Live Demo

let constA = "Hello,"
let constB = "World!"

var stringA = constA + constB
print( stringA )

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Hello,World!

Длина строки

Строки Swift 4 не имеют свойства длины , но вы можете использовать глобальную функцию count () для подсчета количества символов в строке. Вот простой пример —

Live Demo

var varA = "Hello, Swift 4!"

print( "\(varA), length is \((varA.count))" )

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Hello, Swift 4!, length is 15

Сравнение строк

Вы можете использовать оператор == для сравнения двух строковых переменных или констант. Вот простой пример —

Live Demo

var varA = "Hello, Swift 4!"
var varB = "Hello, World!"

if varA == varB {
   print( "\(varA) and \(varB) are equal" )
} else {
   print( "\(varA) and \(varB) are not equal" )
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Hello, Swift 4! and Hello, World! are not equal

Итерация строки

Строки снова представляют собой набор значений в swift 4, поэтому мы можем перебирать строки, используя циклы.

Live Demo

for chars in "ThisString" {
   print(chars, terminator: " ")
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

T h i s S t r i n g

Юникод Строки

Вы можете получить доступ к UTF-8 и UTF-16 представлению String, выполнив итерации по его свойствам utf8 и utf16, как показано в следующем примере —

Live Demo

var unicodeString = "Dog???"

print("UTF-8 Codes: ")
for code in unicodeString.utf8 {
   print("\(code) ")
}

print("\n")

print("UTF-16 Codes: ")
for code in unicodeString.utf16 {
   print("\(code) ")
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

UTF-8 Codes: 
68 
111 
103 
63 
63 
63 


UTF-16 Codes: 
68 
111 
103 
63 
63 
63 

Строковые функции и операторы

Swift 4 поддерживает широкий спектр методов и операторов, связанных со строками —

пустой

Логическое значение, которое определяет, является ли строка пустой или нет.

hasPrefix (префикс: строка)

Функция, чтобы проверить, существует ли данная строка параметра как префикс строки или нет.

hasSuffix (суффикс: строка)

Функция, чтобы проверить, существует ли данная строка параметра как суффикс строки или нет.

toInt ()

Функция для преобразования числового значения String в Integer.

кол()

Глобальная функция для подсчета количества символов в строке.

utf8

Свойство для возврата UTF-8 представления строки.

utf16

Свойство для возврата UTF-16 представления строки.

unicodeScalars

Свойство возвращать скалярное представление строки в Юникоде.

+

Оператор для объединения двух строк, или строки и символа, или двух символов.

+ =

Оператор для добавления строки или символа к существующей строке.

==

Оператор для определения равенства двух строк.

<

Оператор для выполнения лексикографического сравнения, чтобы определить, оценивается ли одна строка как меньшая, чем другая.

STARTINDEX

Получить значение по начальному индексу строки.

ENDINDEX

Получить значение в конце индекса строки.

индексы

Чтобы получить доступ к индексу по одному. т.е. все символы строки один за другим.

вставить («Значение», в: положение)

Чтобы вставить значение в позиции.

удалить (в: позиции)

removeSubrange (диапазон)

удалить значение в позиции или удалить диапазон значений из строки.

негативы ()

возвращает обратную строку