У цьому підручнику ви дізнаєтесь про використання символів та рядків у Swift. Ви також вивчите різні операції, які можна виконувати над рядками та символами.
Що таке персонаж?
Символ - це окремий символ (буква, цифра тощо). Символи в swift мають Character
тип і оголошуються як:
let someCharacter: Character
Як оголосити та призначити персонажа в Swift?
Ви можете призначити значення типу символів так само, як рядок, використовуючи подвійні лапки, " "
але воно повинно містити лише один символ усередині лапок " "
.
Якщо вам потрібно включити більше одного символу, вам потрібно визначити його 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 у символ.
Створення символів за допомогою унікоду та послідовності екранування
Ви також можете створити спеціальний тип символів для, наприклад, смайликів, використовуючи унікоди. Ви можете створити юнікод, використовуючи послідовність екрану u (n) (кодова точка Юнікоду, n - у шістнадцятковій системі).
Приклад 3: Створення символу Unicode
let heartShape:Character = "u(2665)" print(heartShape)
Коли ви запускаєте програму, результат буде:
♥
У наведеному вище прикладі символ форми серця був створений з коду U+2665
. Незважаючи на те, що u(2665)
він включений у подвійні лапки, компілятор не трактує це як так, String
тому що ми використовували послідовність входів u(n)
. Екранна послідовність не представляє себе при включенні в літерал.
Що таке струна?
Рядок - це просто сукупність символів. Рядки в 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."
є рядковими літералами, що використовуються для створення рядкових змінних 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)
виходи Привіт, Світе! на екрані.
Конкатенація рядків за допомогою розширеного оператора присвоєння
Ми також можемо використовувати розширений оператор присвоєння (+ =) для додавання рядка.
Приклад 7: Об’єднання рядків за допомогою оператора + =
var helloStr = "Hello, " let worldStr = "World!" helloStr += worldStr print(helloStr)
Коли ви запускаєте програму, результат буде:
Привіт Світ!
Зверніть увагу на використання var замість let in helloStr. Якщо ви визначили helloStr константу, використовуючи let, ви не зможете змінити її пізніше, використовуючи +=
оператор, і врешті-решт отримаєте помилку. Отже, вам потрібно визначити helloStr змінну.
Інтерполяція рядка
Це простий процес оцінки рядкового літералу, який складається із змінних, констант тощо. Уявіть, що у вас є ім'я гравця та рахунок, збережений у двох константах як:
let playerName = "Джек" нехай 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!"))
Коли ви запускаєте програму, результат буде:
правда помилково