В этом руководстве вы узнаете об использовании символов и строк в Swift. Вы также узнаете о различных операциях, которые можно выполнять со строками и символами.
Что есть персонаж?
Символ - это отдельный символ (буква, цифра и т. Д.). Символ в swift относится к Character
типу и объявляется как:
let someCharacter: Персонаж
Как объявить и назначить персонажа в Swift?
Вы можете присвоить значение в символьном типе, аналогичном String, используя двойные кавычки, " "
но оно должно содержать только один символ внутри кавычек " "
.
Если вам нужно включить более одного символа, вам нужно определить его String
вместо Character
.
Пример 1: Объявление и присвоение символа
let someCharacter:Character = “H” let specialCharacter:Character = “@” print(someCharacter) print(specialCharacter)
Когда вы запустите программу, вывод будет:
H @
Пример 2: Назначение более одного символа (не работает)
Но если вы попытаетесь назначить два символа внутри символа как
/* This will give an error Changing the type to String will fix it. */ let failableCharacter:Character = "H@" print(failableCharacter)
Когда вы попытаетесь запустить приведенный выше код, вы получите сообщение об ошибке:
Невозможно преобразовать значение типа String в Character.
Создание символа с использованием юникода и escape-последовательности
Вы также можете создать особый тип символов, например эмодзи, используя юникоды. Вы можете создать Unicode, используя escape-последовательность u (n) (кодовая точка unicode, n в шестнадцатеричном формате).
Пример 3: Создание символа Юникода
let heartShape:Character = "u(2665)" print(heartShape)
Когда вы запустите программу, вывод будет:
♥
В приведенном выше примере символ в форме сердца был создан из кода U+2665
. Несмотря u(2665)
на то, что он заключен в двойные кавычки, компилятор не рассматривает его как, String
потому что мы использовали escape-последовательность u(n)
. Управляющая последовательность не представляет себя, если включена в литерал.
Что такое строка?
Строка - это просто набор символов. Строки в Swift имеют String
тип и объявлены как:
пусть someString: String
Как объявить и назначить строку в Swift?
Вы можете присвоить значение в виде String, используя строковые литералы. Строковый литерал - это набор символов, заключенных в двойные кавычки " "
.
Пример 4: Объявление и присвоение строки
let someString:String = "Hello, world!" let someMessage = "I love Swift." print(someString) print(someMessage)
Когда вы запустите программу, вывод будет:
Привет мир! Обожаю Свифт.
Здесь оба "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)
Когда вы запустите программу, вывод будет:
ложная правда
Конкатенация строк
Два разных строковых значения могут быть добавлены вместе с оператором сложения (+)
или с использованием составного оператора присваивания (+=)
. Вы также можете добавить символ / строку в строку с помощью append
метода.
Пример 6: конкатенация строк в Swift
let helloStr = "Hello, " let worldStr = "World" var result = helloStr + worldStr print(result) result.append("!") print(result)
Когда вы запустите программу, вывод будет:
Привет, мир, привет, мир!
В приведенной выше программе мы создали строковый результат, добавив helloStr и worldStr с помощью оператора +. Итак, на экран print(result)
выводится Hello, World .
Вы также можете добавить любой символ или строку с помощью append
метода. result.append("!")
добавляет !
символ в конец строки. Итак, print(result)
выводы Hello, World! на экране.
Конкатенация строк с использованием расширенного оператора присваивания
Мы также можем использовать расширенный оператор присваивания (+ =) для добавления строки.
Пример 7: Конкатенация строк с использованием оператора + =
var helloStr = "Hello, " let worldStr = "World!" helloStr += worldStr print(helloStr)
Когда вы запустите программу, вывод будет:
Привет мир!
Обратите внимание на использование var вместо let в helloStr. Если вы определили helloStr как константу с помощью let, вы не сможете изменить ее позже с помощью +=
оператора и в конечном итоге получите ошибку. Итак, вам нужно определить helloStr как переменную.
Строчная интерполяция
Это простой процесс вычисления строкового литерала, который состоит из переменных, констант и т. Д. Представьте, что у вас есть имя и счет игрока, сохраненные в двух константах:
let playerName = "Jack" let playerScore = 99
Теперь вам нужно вывести игроку сообщение: «Поздравляю, Джек! Ваш самый высокий балл - 99». Здесь вам нужен способ использовать значения констант в одной строке.
This can be achieved using string concatenation as:
let congratsMessage = "Congratulations " + playerName + "!. Your highest score is " + playerScore + "." print(congratsMessage)
However, you can see this can get messy pretty soon. You have to take care of the spaces after the word Congratulations
, is
. Also, if you have to use more than two constants/variables, it will get unreadable.
There’s an easier way to display the message using string interpolation. Interpolation is the process to include value of a variable or constant inside string literal.
The variable or constant that should insert into the string literal is wrapped in a pair of parentheses ( )
, prefixed by a backslash ()
.
Example 8: String interpolation in Swift
let playerName = "Jack" let playerScore = 99 let congratsMessage = "Congratulations (playerName)!. Your highest score is (playerScore)." print(congratsMessage)
When you run the program, the output will be:
Congratulations Jack!. Your highest score is 99.
Some helpful built-in String functions & variables:
1. isEmpty
This function determines if a string is empty or not. It returns true
if the string is empty otherwise, it returns false
.
Example 9: isEmpty
var emptyString = "" print(emptyString.isEmpty)
When you run the program, the output will be:
true
2. capitalized
This property is used to capitalize every word in a string.
Example 10: capitalized
let someString = "hello, world!" print(someString.capitalized)
When you run the program, the output will be:
Hello, World!
3. uppercased and lowercased
The uppercased function converts string to uppercase letter and the lowercased function converts string to lowercase letter.
Example 11: uppercased() and lowercased()
let someString = "Hello, World!" print(someString.uppercased()) print(someString.lowercased())
When you run the program, the output will be:
HELLO, WORLD! hello, world!
4. Length/count
This property is used to count the total number of characters in a string.
Example 12: count
let someString = "Hello, World!" print(someString.count)
When you run the program, the output will be:
13
5. hasPrefix
Эта функция определяет, начинается ли строка с определенных символов или нет, и возвращает логическое значение. Он возвращается, true
если префикс строки совпадает с предоставленным значением, в противном случае возвращается false
.
Пример 13: hasPrefix ()
let someString = "Hello, World!" print(someString.hasPrefix("Hell")) print(someString.hasPrefix("hell"))
Когда вы запустите программу, вывод будет:
правда ложь
6. hasSuffix
Эта функция определяет, заканчивается ли строка определенными символами или нет, и возвращает логическое значение. Он возвращается, true
если суффикс строки совпадает с предоставленным значением, в противном случае возвращается false
.
Пример 14: hasSuffix ()
print(someString.hasSuffix("rld!")) print(someString.hasSuffix("Rld!"))
Когда вы запустите программу, вывод будет:
правда ложь