Строка
A String представляет упорядоченный набор символов.
Для полного обсуждения Строки посмотрите Строки и Символы.
Создание строки
init ()
Создает пустую строку.
Объявление
init()
Обсуждение
Создание строки с помощью этого инициализатора:
let emptyString = String()
эквивалентно использованию синтаксиса удобства двойной кавычки:
let equivalentString = ""
init (count:repeatedValue:)
Создает строку с отдельным символом, или скалярное значение Unicode повторило данное число раз.
Объявление
init(count sz: Int, repeatedValue c: Character)init(count: Int, repeatedValue c: UnicodeScalar)
Обсуждение
Получившая строка содержит предоставленный repeatedValue символ или скалярное значение Unicode, повторенное конкретное количество времен:
let letterA: Character = "a"let string = String(count: 5, repeatedValue: letterA)// string is "aaaaa"let letterB: UnicodeScalar = "\u{0062}"let anotherString = String(count: 5, repeatedValue: letterB)//anotherString is "bbbbb"
Запросы строки
isEmpty
Булево значение, указывающее, является ли строка пустой (только для чтения).
Объявление
var isEmpty: Bool { get }
Обсуждение
Используйте это свойство только для чтения, чтобы запросить, пуста ли строка, что означает, что это не имеет никаких символов:
var string = "Hello, world!"let firstCheck = string.isEmpty// firstCheck is falsestring = ""let secondCheck = string.isEmpty// secondCheck is true
hasPrefix (_:)
Возвращает булево значение, указывающее, совпадают ли первые символы в строке с символами в указанной строке.
Объявление
func hasPrefix(prefix: String) -> Bool
Обсуждение
Используйте этот метод, чтобы определить, имеет ли строка определенный префикс:
let string = "Hello, world"let firstCheck = string.hasPrefix("Hello")// firstCheck is truelet secondCheck = string.hasPrefix("hello")// secondCheck is false
Этот метод perfoms познаковая каноническая эквивалентность comparision между Unicode расширил кластеры графемы в каждой строке.
hasSuffix (_:)
Возвращает булево значение, указывающее, совпадают ли последние знаки в строке с символами в указанной строке.
Объявление
func hasSuffix(suffix: String) -> Bool
Обсуждение
Используйте этот метод, чтобы определить, имеет ли строка определенный суффикс:
let string = "Hello, world"let firstCheck = string.hasSuffix("world")// firstCheck is truelet secondCheck = string.hasSuffix("World")// secondCheck is false
Этот метод perfoms познаковая каноническая эквивалентность comparision между Unicode расширил кластеры графемы в каждой строке.
Преобразование строк
toInt ()
Возвращает дополнительное целое число, содержащее результат попытки преобразовать символы в строке к целочисленному значению.
Объявление
func toInt() -> Int?
Обсуждение
Используйте этот метод для преобразования строки в целочисленное значение. Метод возвращает дополнительное целочисленное значение (Int?) — если преобразование успешно выполняется, значение является получающимся целым числом; если преобразование перестало работать, значение nil:
let string = "42"if let number = string.toInt() {println("Got the number: \(number)")} else {println("Couldn't convert to a number")}// prints "Got the number: 42"
Операторы
+
Возвращает строку, содержащую результат конкатенации двух строк.
Объявление
func +(lhs: String, rhs: String) -> String
Обсуждение
Используйте + оператор для конкатенации двух строк:
let combination = "Hello " + "world"// combination is "Hello world"
Если значение, предоставленное на левой стороне оператора, является пустой строкой, результирующее значение является неизмененным значением на правой стороне.
+=
Добавляет строку к существующей строке.
Объявление
func +=(inout lhs: String, rhs: String)
Обсуждение
Используйте += оператор для добавления строки до конца существующей строки:
var string = "Hello "string += "world!"// string is "Hello world!"
Если начальная строка пуста, результирующее значение является неизмененным rhs значение.
Можно только использовать += оператор для добавления строки к существующей строке, если Вы объявили существующую строку с помощью var ключевое слово (т.е. как переменная и не константа):
let string = "Hello "string += "world!"// Error: cannot mutate a constant string
==
Возвращает булево значение, указывающее, является ли содержание двух строк тем же.
Объявление
func ==(lhs: String, rhs: String) -> Bool
Обсуждение
Оценивает к true если два строковых значения содержат точно те же символы в точно том же порядке:
let string1 = "Hello world!"let string2 = "Hello" + " " + "world" + "!"let result = string1 == string2// result is true
Этот метод perfoms познаковая каноническая эквивалентность comparision между Unicode расширил кластеры графемы в каждой строке.
<
Возвращает булево значение, указывающее, предшествует ли одна строка лексикографически другому.
Объявление
func <(lhs: String, rhs: String) -> Bool
Обсуждение
Оценивает к true если lhs значение является меньше, чем rhs значение, путем выполнения лексикографического, нечувствительного к локали сравнения символов:
let string1 = "Number 3"let string2 = "Number 2"let result1 = string1 < string2// result1 is falselet result2 = string2 < string1// result2 is true
Эта работа нечувствительна к локали. В результате при сравнении строк для представления конечному пользователю, необходимо обычно использовать один из чувствительных к локали методов сравнения NSString класс вместо этого. Например, посмотрите compare:options:range:locale:, localizedCompare:, и localizedCaseInsensitiveCompare: методы NSString класс.
