Строки Swift
Строка Swift — это коллекция из последовательности символов. Например, упорядоченная коллекция значений символьного типа, таких как "Hello, World!", тип данных которой —String。
Создание строк
Вы можете создать строку, используя строковый литерал или экземпляр класса String:
import Cocoa
// 使用字符串字面量
var stringA = "Hello, World!"
print( stringA )
// String 实例化
var stringB = String("Hello, World!")
print( stringB )
Вывод выполнения вышеуказанной программы:
Hello, World! Hello, World!
Пустые строки
Вы можете присвоить пустой строковый литерал переменной или инициализировать экземпляр класса String, чтобы инициализировать пустую строку. Мы можем использовать свойство строки isEmpty, чтобы определить, является ли строка пустой:
import Cocoa
// 使用字符串字面量创建空字符串
var stringA = ""
if stringA.isEmpty {
print( "stringA 是空的" )
} else {
print( "stringA 不是空的" )
}
// 实例化 String 类来创建空字符串
let stringB = String()
if stringB.isEmpty {
print( "stringB 是空的" )
} else {
print( "stringB 不是空的" )
}
Вывод выполнения вышеуказанной программы:
stringA 是空的 stringB 是空的
Строковые константы
Вы можете присвоить строку переменной или константе. Переменные можно изменять, а константы — нельзя.
import Cocoa
// stringA 可被修改
var stringA = "Example:"
stringA += "http://www.example.com"
print( stringA )
// stringB 不能修改
let stringB = String("Example:")
stringB += "http://www.example.com"
print( stringB )
Выполнение вышеприведённой программы приведёт к ошибке, потому что stringB является константой и не может быть изменена:
error: left side of mutating operator isn't mutable: 'stringB' is a 'let' constant stringB += "http://www.example.com"
Интерполяция строк
Интерполяция строк — это способ создания новой строки, которая может включать константы, переменные, литералы и выражения. Каждый вставляемый элемент строкового литерала заключается в круглые скобки, перед которыми ставится обратная косая черта:
import Cocoa var varA = 20 let constA = 100 var varC:Float = 20.0 var stringA = "\(varA) 乘于 \(constA) 等于 \(varC * 100)" print( stringA )
Вывод выполнения вышеуказанной программы:
20 乘于 100 等于 2000.0
Конкатенация строк
Строки можно объединять с помощью оператора+, как показано в следующем примере:
import Cocoa let constA = "Example:" let constB = "http://www.example.com" var stringA = constA + constB print( stringA )
Вывод выполнения вышеуказанной программы:
Example:http://www.example.com
Длина String
Длина строки вычисляется с помощью свойстваString.count, как показано в следующем примере:
В версии Swift 3 используется String.characters.count
import Cocoa var varA = "www.example.com" print( "\(varA), 长度为 \(varA.count)" )
Вывод выполнения вышеуказанной программы:
www.example.com, 长度为 14
Сравнение строк
Вы можете использовать==, чтобы проверить, равны ли две строки:
import Cocoa
var varA = "Hello, Swift!"
var varB = "Hello, World!"
if varA == varB {
print( "\(varA) 与 \(varB) 是相等的" )
} else {
print( "\(varA) 与 \(varB) 是不相等的" )
}
Вывод выполнения вышеуказанной программы:
Hello, Swift! 与 Hello, World! 是不相等的
Строки Unicode
Unicode — это международный стандарт, используемый для кодирования текста. Тип String в Swift построен на основе Unicode. Вы можете перебирать кодировки UTF-8 и UTF-16 в строке, как показано в следующем примере:
import Cocoa
var unicodeString = "Example"
print("UTF-8 编码: ")
for code in unicodeString.utf8 {
print("\(code) ")
}
print("\n")
print("UTF-16 编码: ")
for code in unicodeString.utf16 {
print("\(code) ")
}
Вывод выполнения вышеуказанной программы:
UTF-8 编码: 232 143 156 233 184 159 230 149 153 231 168 139 UTF-16 编码: 33756 40479 25945 31243
Строковые функции и операторы
Swift поддерживает следующие строковые функции и операторы:
| Порядковый номер | Функция/оператор и описание |
|---|---|
| 1 | isEmpty Проверяет, пуста ли строка, возвращает логическое значение |
| 2 | hasPrefix(prefix: String) Проверяет, имеет ли строка указанный префикс |
| 3 | hasSuffix(suffix: String) Проверяет, имеет ли строка указанный суффикс. |
| 4 | Int(String) Преобразует числовую строку в целое число. Пример: let myString: String = "256" let myInt: Int? = Int(myString) |
| 5 | String.count В версии Swift 3 используется String.characters.count Вычисляет длину строки |
| 6 | utf8 Доступ к UTF-8-кодировке строки можно получить, перебирая её свойство utf8 |
| 7 | utf16 Доступ к UTF-16-кодировке строки можно получить, перебирая её свойство utf16 |
| 8 | unicodeScalars Доступ к скалярной кодировке Unicode значения String можно получить, перебирая его свойство unicodeScalars. |
| 9 | + Объединяет две строки и возвращает новую строку |
| 10 | += Объединяет строки по обе стороны от оператора и присваивает новую строку переменной слева от оператора |
| 11 | == Определяет, равны ли две строки |
| 12 | < Сравнивает две строки, сравнивая символы двух строк один за другим. |
| 13 | != Определяет, не равны ли две строки. |