English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Swift Основы

Операторы в Swift

Swift Управление потоком

Swift Коллекции

Swift Функции

Swift Уровень продвинутый

Символы и строки в Swift

В этом руководстве вы узнаете о использовании символов и строк в Swift. Вы также узнаете о различных операциях, которые можно выполнять с строками и символами.

Что такое символ?

Символы - это отдельные знаки (буквы, цифры и т.д.). В Swift символы являются типом Character и объявляются как:

let someCharacter:Character

Как объявить и присвоить символ в Swift?

Вы можете использовать двойные кавычки "" для указания значения типа символа, такого же как у строки, но в кавычках может содержаться только один символ.

Если нужно включить несколько символов, то их необходимо определить как тип String, а не Character.

Пример 1: объявление и назначение символа

let someCharacter:Character = "H"
let specialCharacter:Character = "@"
print(someCharacter)
print(specialCharacter)

При выполнении программы, вывод будет:

H
@

Пример 2: назначение нескольких символов (недопустимо)

Но если вы пытаетесь分配 два символа в строке

/*
 Это вызовет ошибку.
Изменение типа на строку может исправить эту проблему.
*/
let failableCharacter: Character = "H@"
print(failableCharacter)

Когда вы пытаетесь запустить上面的 код, вы получите следующее сообщение об ошибке:

Cannot convert value of type String to Character. (Не удалось преобразовать значение типа String в Character.)

Создание символов с использованием Unicode и последовательностей escape

Вы также можете использовать unicodes для создания специальных типов символов для emoticons. Вы можете создать unicode (unicode код точки, n - шестнадцатеричное число) с помощью последовательности escape \u {n}.

Пример 3: Создание unicode символа

let heartShape: Character = "\u{2665}"
print(heartShape)

При выполнении программы, вывод будет:

В предыдущем примере символ сердца был создан из кода U + 2665.尽管\u {2665} заключен в двойные кавычки, компилятор не рассматривает его как String, потому что мы используем последовательность逃 meille \u {n}. Секvensии escape, содержащиеся в литералах, не представляют собой самих себя.

Что такое строка?

Строки представляют собой набор символов. В Swift строки являются типом String и объявляются следующим образом:

let someString: String

Как объявлять и присваивать строки в Swift?

Вы можете использоватьСтроковые литералыПрисваивайте значения типа String. Строковые литералы представляют собой набор символов, заключенных в двойные кавычки "".

Пример 4: Объявление и присвоение строки

let someString: String = "Hello, world!"
let someMessage = "I love Swift."
print(someString)
print(someMessage)

При выполнении программы, вывод будет:

Hello, world!
I love Swift.

Здесь "Hello, world!" и "I love Swift." являются строками, используемыми для создания переменных строк someString и someMessage.

Операции со строками

В строке String есть некоторые встроенные функции и свойства для обработки наиболее常用的 операций. Например: чтобы соединить строки, измените их на заглавные или строчные. Давайте рассмотрим некоторые из наиболее常用的 операций:

Сравнение строк

Вы можете использоватьОператоры сравнения (==) простым образом проверяет, равны ли две строки. Если две строки равны, то оператор возвращает true, в противном случае false.

Пример 5: Сравнение строк в Swift

let someString = "Hello, world!"
let someMessage = "I love Swift."
let someAnotherMessage = "Hello, world!"
print(someString == someMessage)
print(someString == someAnotherMessage)

При выполнении программы, вывод будет:

false
true

сопоставление строк

Можно использоватьоператор сложения (+) или использоватьКомпозиционные операторы присваивания (+=) складывает два различных значения строк. Вы также можете использовать метод append для добавления символа или строки в строку.

Пример 6: Слияние строк в Swift

let helloStr = "Hello, "
let worldStr = "World"
var result = helloStr + worldStr
print(result)
result.append("!")
print(result)

При выполнении программы, вывод будет:

Hello, World
Hello, World!

В вышеуказанном的程序ме мы создали строку, присоединяя и используя оператор +Строка result. Поэтому helloStrworldStrprint(result) выводит на экранHello, World.

Вы также можете использовать метод append для добавления любого символа или строки. result.append("!") добавляет символ ! в конец строки. Поэтому print(result) выводит на экранHello, World!.

Слияние строк с использованием продвинутых операторов присваивания

Мы также можем использовать продвинутые операторы присваивания (+=) для слияния строк.

Пример 7: Слияние строк с использованием оператора +=

var helloStr = "Hello, "
let worldStr = "World!"
helloStr += worldStr
print(helloStr)

При выполнении программы, вывод будет:

Hello, World!

Обратите внимание, что в helloStr используется var, а не let. Если вы уже использовали let для определения helloStr константы, то впоследствии вы не сможете изменить её с помощью оператора += и в конечном итоге получите ошибку. Поэтому вам нужно определить helloStr переменную.

Строка интерполяции

Это простая процедура, строковое литерал, включая переменные, константы и т.д. Предположим, что у вас есть имя игрока и оценка, хранящиеся в двух константах, как:

let playerName = "Jack"
let playerScore = 99

Теперь вам нужно показать игроку сообщение: "ПоздравляемJackВаш максимальный балл составляет 99!Здесь вам нужно метод для использования константных значений в одном строковом выражении.

Это можно сделать с помощью соединения строк:

let congratsMessage = "恭喜 " + playerName + "!. 您的最高分是 " + playerScore + "."
print(congratsMessage)

Но, вышеупомянутый способ обладает较差ой читаемостью.

Таким образом, есть简便的方法 для отображения сообщений с использованием строковой интерполяции. Интерполяция - это процесс включения значений переменных или констант в строку literals.

Следует заключать переменные или константы, которые должны быть вставлены в строку literals, в скобки ( ), и начинать с обратной косой черты (\).

Пример 8: строковая интерполяция в Swift

let playerName = "Jack"
let playerScore = 99
let congratsMessage = "恭喜\(playerName)!. 您的最高分是 \(playerScore)."
print(congratsMessage)

При выполнении программы, вывод будет:

Поздравляем Jack!. Ваш наивысший балл составляет 99.

Внутренние функции и свойства строки:

1. isEmpty (определение пустоты)

Эта функция определяет, пуста ли строка. Она возвращает true, если строка пуста, в противном случае возвращает false.

Пример 9: isEmpty

var emptyString = ""
print(emptyString.isEmpty)

При выполнении программы, вывод будет:

true

2.capitalized (верхний регистр слова)

Эта�性 используется для написания каждого слова в строке верхним регистром.

Пример 10: верхний регистр

let someString = "hello, world!"
print(someString.capitalized)

При выполнении программы, вывод будет:

Hello, World!

3.uppercased и lowercased (верхний и нижний регистр строки)

Функция верхнего регистра преобразует строку в заглавные буквы, функция нижнего регистра преобразует строку в строчные буквы.

Пример 11: uppercased() и lowercased()

let someString = "Hello, World!"
print(someString.uppercased())
print(someString.lowercased())

При выполнении программы, вывод будет:

HELLO, WORLD!
hello, world!

4.count (счет/длина)

Эта�性 используется для вычисления总数 символов в строке.

Пример 12: подсчет

let someString = "Hello, World!"
print(someString.count)

При выполнении программы, вывод будет:

13

5. hasPrefix

Эта функция определяет, начинается ли строка с определенного символа, и возвращает логическое значение true. Если строковый префикс соответствует предоставленному значению, то возвращает true, в противном случае возвращает false.

Пример 13: hasPrefix()

let someString = "Hello, World!"
print(someString.hasPrefix("Hell"))
print(someString.hasPrefix("hell"))

При выполнении программы, вывод будет:

true
false

6. hasSuffix

Эта функция определяет, заканчивается ли строка определенными символами и возвращает логическое значение. Если суффикс строки совпадает с предоставленным значением, возвращается true, в противном случае false.

Пример 14: hasSuffix()

print(someString.hasSuffix("rld!"))
print(someString.hasSuffix("Rld!"))

При выполнении программы, вывод будет:

true
false