Строка
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 false
string = ""
let secondCheck = string.isEmpty
// secondCheck is true
hasPrefix (_:)
Возвращает булево значение, указывающее, совпадают ли первые символы в строке с символами в указанной строке.
Объявление
func hasPrefix(prefix: String) -> Bool
Обсуждение
Используйте этот метод, чтобы определить, имеет ли строка определенный префикс:
let string = "Hello, world"
let firstCheck = string.hasPrefix("Hello")
// firstCheck is true
let 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 true
let 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 false
let result2 = string2 < string1
// result2 is true
Эта работа нечувствительна к локали. В результате при сравнении строк для представления конечному пользователю, необходимо обычно использовать один из чувствительных к локали методов сравнения NSString
класс вместо этого. Например, посмотрите compare:options:range:locale:
, localizedCompare:
, и localizedCaseInsensitiveCompare:
методы NSString
класс.