Строки в Swift 4 представляют собой упорядоченную коллекцию символов, например «Hello, World!» и они представлены типом данных Swift 4 String , который, в свою очередь, представляет коллекцию значений типа Character .
Создать строку
Вы можете создать строку либо используя строковый литерал, либо создав экземпляр класса String следующим образом:
// 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 .
// 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 из набора констант, переменных, литералов и выражений путем включения их значений в строковый литерал.
Каждый элемент (переменная или константа), который вы вставляете в строковый литерал, заключен в пару круглых скобок с префиксом обратной косой черты. Вот простой пример —
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
Конкатенация строк
Вы можете использовать оператор + для объединения двух строк или строки и символа, или двух символов. Вот простой пример —
let constA = "Hello," let constB = "World!" var stringA = constA + constB print( stringA )
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
Hello,World!
Длина строки
Строки Swift 4 не имеют свойства длины , но вы можете использовать глобальную функцию count () для подсчета количества символов в строке. Вот простой пример —
var varA = "Hello, Swift 4!" print( "\(varA), length is \((varA.count))" )
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
Hello, Swift 4!, length is 15
Сравнение строк
Вы можете использовать оператор == для сравнения двух строковых переменных или констант. Вот простой пример —
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, поэтому мы можем перебирать строки, используя циклы. —
for chars in "ThisString" { print(chars, terminator: " ") }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
T h i s S t r i n g
Юникод Строки
Вы можете получить доступ к UTF-8 и UTF-16 представлению String, выполнив итерации по его свойствам utf8 и utf16, как показано в следующем примере —
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 (диапазон)
удалить значение в позиции или удалить диапазон значений из строки.
негативы ()
возвращает обратную строку