У овом упутству ћете научити о употреби знакова и низова у Свифту. Такође ћете научити различите операције које се могу изводити на жицама и знаковима.
Шта је лик?
Карактер је један симбол (слово, број итд.). Карактер у брзом су Character
типа и декларише се као:
нека некаКарактер: Карактер
Како пријавити и доделити лик у Свифту?
Можете доделити вредност у типу знака исто као и низ користећи двоструке наводнике, " "
али она треба да садржи само један знак унутар наводника " "
.
Ако је потребно да уврстите више знакова, String
уместо њега треба да га дефинишете Character
.
Пример 1: Декларисање и додељивање карактера
let someCharacter:Character = “H” let specialCharacter:Character = “@” print(someCharacter) print(specialCharacter)
Када покренете програм, излаз ће бити:
Х @
Пример 2: Додељивање више знакова (не ради)
Али ако покушате да доделите два симбола унутар знака као
/* This will give an error Changing the type to String will fix it. */ let failableCharacter:Character = "H@" print(failableCharacter)
Када покушате да покренете горњи код, добићете грешку као:
Није могуће претворити вредност типа Стринг у знак.
Креирање карактера помоћу Уницоде и есцапе секвенце
Такође можете да направите посебну врсту знакова за нпр. Емоји сличице помоћу уницода. Можете створити Уницоде користећи излазну секвенцу у (н) (уницоде кодна тачка, н је у хексадецималном облику).
Пример 3: Креирање Уницоде карактера
let heartShape:Character = "u(2665)" print(heartShape)
Када покренете програм, излаз ће бити:
♥
У горњем примеру, лик у облику срца је створен од кода U+2665
. Иако u(2665)
је укључен у двоструке наводнике, компајлер га не третира као String
зато што смо користили есцапе секвенцу u(n)
. Секвенца за излазак не представља себе када је укључена у литерал.
Шта је низ?
Низ је једноставно скуп знакова. Низови у Свифту су String
типа и декларисани су као:
лет сомеСтринг: Стринг
Како прогласити и доделити низ у Свифту?
Можете доделити вредност у типу Стринг користећи стринг литерале. Знаковни низ је скуп знакова окружен двоструким наводницима " "
.
Пример 4: Декларисање и додељивање низа
let someString:String = "Hello, world!" let someMessage = "I love Swift." print(someString) print(someMessage)
Када покренете програм, излаз ће бити:
Здраво Свете! Волим Свифта.
Овде су оба "Hello, world!"
и "I love Swift."
стринг литерални знакови који се користе за креирање променљивих низа сомеСтринг односно сомеМессаге.
Операције на низу
У Стринг-у постоје неке уграђене функције и својства која се баве најчешће коришћеним операцијама. На пример: да бисте спојили низове, промените их у велика или велика слова. Истражимо неке од често коришћених операција у наставку:
Поређење низа
Једноставно можете да проверите да ли су две жице једнаке или не користећи оператор упоређивања (==)
. Оператор враћа ретурн true
ако су оба низа једнака, у супротном се враћа false
.
Пример 5: Поређење низа у Свифту
let someString = "Hello, world!" let someMessage = "I love Swift." let someAnotherMessage = "Hello, world!" print(someString == someMessage) print(someString == someAnotherMessage)
Када покренете програм, излаз ће бити:
лажно тачно
Спајање низова
Две различите вредности низа могу се додати заједно са оператором сабирања (+)
или помоћу сложеног оператора доделе (+=)
. Такође можете додати знак / низ у низ помоћу append
методе.
Пример 6: Спајање низова у Свифту
let helloStr = "Hello, " let worldStr = "World" var result = helloStr + worldStr print(result) result.append("!") print(result)
Када покренете програм, излаз ће бити:
Здраво, свет Здраво, свет!
У горе наведеном програму створили смо резултат низа додавањем хеллоСтр и ворлдСтр помоћу + оператора. Дакле, print(result)
излази Добро, свет на екрану.
Такође можете додати било који знак или низ помоћу append
методе. result.append("!")
додаје !
знак на крају низа. Дакле, print(result)
излази Хелло, Ворлд! на екрану.
Спајање низова помоћу напредног оператора доделе
Такође можемо користити напредни оператор додељивања (+ =) за додавање низа.
Пример 7: Спајање низова помоћу оператора + =
var helloStr = "Hello, " let worldStr = "World!" helloStr += worldStr print(helloStr)
Када покренете програм, излаз ће бити:
Здраво Свете!
Обратите пажњу на употребу вар уместо лет ин хеллоСтр. Ако сте дефинисали хеллоСтр константу помоћу лет, не можете је касније променити помоћу +=
оператора и на крају ћете добити грешку. Дакле, морате дефинисати хеллоСтр променљиву.
Интерполација низа
То је једноставан поступак процене стринг литерала који се састоји од променљивих, константи итд. Замислите да имате име и резултат играча сачуване у две константе као:
нека плаиерНаме = "Јацк" нека плаиерСцоре = 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: хасПрефик ()
let someString = "Hello, World!" print(someString.hasPrefix("Hell")) print(someString.hasPrefix("hell"))
Када покренете програм, излаз ће бити:
тачно нетачно
6. хасСуффик
Ова функција одређује да ли се низ завршава одређеним знаковима или не и враћа логичку вредност. Враћа се true
ако се суфикс низа подудара са наведеном вредношћу, у супротном се враћа false
.
Пример 14: хасСуффик ()
print(someString.hasSuffix("rld!")) print(someString.hasSuffix("Rld!"))
Када покренете програм, излаз ће бити:
тачно нетачно