Строки 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

!=

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

Другие расширения