В този урок ще научите за използването на символи и низове в Swift. Ще научите и различни операции, които могат да се извършват върху низове и символи.
Какво е герой?
Символът е единичен символ (буква, цифра и т.н.). Символите в бързи са от Character
тип и се декларират като:
let someCharacter: Character
Как да декларирам и присвоя характер в 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 в символ.
Създаване на символ с помощта на unicode и escape последователност
Можете също така да създадете специален тип знаци за например емотикони, като използвате unicodes. Можете да създадете unicode, като използвате екранираща последователност u (n) (unicode кодова точка, 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)
Когато стартирате програмата, изходът ще бъде:
false false
Конкатенация на низове
Две различни стойности на низовете могат да бъдат добавени заедно с оператора за добавяне (+)
или с помощта на съставния оператор за присвояване (+=)
. Можете също да добавите символ / низ в низ, използвайки 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 = "Jack" нека 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!"))
Когато стартирате програмата, изходът ще бъде:
вярно невярно