V tej vadnici boste izvedeli več o uporabi znakov in nizov v Swiftu. Naučili se boste tudi različnih operacij, ki jih je mogoče izvajati na nizih in znakih.
Kaj je lik?
Znak je en sam simbol (črka, številka itd.). Znaki v hitrem so Character
tipa in so navedeni kot:
let someCharacter: Znak
Kako prijaviti in dodeliti znak v Swiftu?
V vrsti znakov lahko dodelite vrednost, enako kot String, z dvojnimi narekovaji, " "
vendar mora vsebovati samo en znak znotraj narekovajev " "
.
Če morate vključiti več kot en znak, ga morate String
namesto tega določiti Character
.
Primer 1: prijava in dodelitev znaka
let someCharacter:Character = “H” let specialCharacter:Character = “@” print(someCharacter) print(specialCharacter)
Ko zaženete program, bo rezultat:
H @
Primer 2: Dodelitev več kot enega znaka (ne deluje)
Ampak, če poskušate znotraj znaka dodeliti dva simbola kot
/* This will give an error Changing the type to String will fix it. */ let failableCharacter:Character = "H@" print(failableCharacter)
Ko poskusite zagnati zgornjo kodo, se prikaže napaka:
Vrednosti vrste String ni mogoče pretvoriti v znak.
Ustvarjanje znakov z uporabo unicode in ubežnega zaporedja
S pomočjo unicodes lahko ustvarite tudi posebno vrsto znakov za npr. Emoji. Unicode lahko ustvarite z ubežnim zaporedjem u (n) (kodna točka unicode, n je v šestnajstiški).
Primer 3: Ustvarjanje znaka unicode
let heartShape:Character = "u(2665)" print(heartShape)
Ko zaženete program, bo rezultat:
♥
V zgornjem primeru je bil iz kode ustvarjen lik v obliki srca U+2665
. Čeprav u(2665)
je vključen v dvojne narekovaje, ga prevajalnik ne obravnava kot String
zato, ker smo uporabili ubežno zaporedje u(n)
. Ubežno zaporedje se ne predstavlja, če je vključeno v dobesedno.
Kaj je niz?
Niz je preprosto zbirka znakov. Strune v Swiftu so String
vrste in so razglašene kot:
let someString: String
Kako razglasiti in dodeliti niz v Swiftu?
Vrednost v vrsti String lahko dodelite z uporabo nizovnih literal. Niz nizov je zbirka znakov, obdana z dvojnimi narekovaji " "
.
Primer 4: Izjava in dodelitev niza
let someString:String = "Hello, world!" let someMessage = "I love Swift." print(someString) print(someMessage)
Ko zaženete program, bo rezultat:
Pozdravljen, svet! Obožujem Swifta.
Tu sta obe "Hello, world!"
in "I love Swift."
nizni literali, ki se uporabljajo za ustvarjanje nizovnih spremenljivk someString oziroma someMessage.
Operacije na nizu
V Stringu je nekaj vgrajenih funkcij in lastnosti za obravnavanje najpogosteje uporabljenih operacij. Na primer: če želite združiti nize, jih spremenite v velike ali velike začetnice. Spodaj raziščimo nekaj pogosto uporabljenih operacij:
Primerjava nizov
Z operatorjem primerjave lahko preprosto preverite, ali sta dve nizi enaki ali ne (==)
. Operator vrne vrne, true
če sta oba niza enaka, sicer se vrne false
.
Primer 5: Primerjava nizov v Swiftu
let someString = "Hello, world!" let someMessage = "I love Swift." let someAnotherMessage = "Hello, world!" print(someString == someMessage) print(someString == someAnotherMessage)
Ko zaženete program, bo rezultat:
lažno res
Združevanje nizov
Dve različni vrednosti nizov lahko dodate skupaj z operatorjem seštevanja (+)
ali z uporabo sestavljenega operatorja dodelitve (+=)
. Znak / niz lahko dodate tudi v niz z uporabo append
metode.
Primer 6: Združevanje nizov v Swiftu
let helloStr = "Hello, " let worldStr = "World" var result = helloStr + worldStr print(result) result.append("!") print(result)
Ko zaženete program, bo rezultat:
Pozdravljeni, svet Pozdravljeni, svet!
V zgornjem programu smo ustvarili rezultat niza z dodajanjem helloStr in worldStr z uporabo operatorja +. Torej, print(result)
izhodi Zdravo, svet na zaslonu.
Z append
metodo lahko dodate tudi kateri koli znak ali niz . result.append("!")
doda !
znak na koncu niza. Torej, print(result)
rezultati Zdravo, svet! na zaslonu.
Združevanje nizov z uporabo naprednega operaterja dodelitve
We can also use advanced assignment operator (+=) to append string.
Example 7: String concatenation using += operator
var helloStr = "Hello, " let worldStr = "World!" helloStr += worldStr print(helloStr)
When you run the program, the output will be:
Hello, World!
Notice the use of var instead of let in helloStr. If you have defined helloStr a constant using let, you cannot change it later using the +=
operator and eventually get an error. So, you have to define helloStr a variable.
String Interpolation
It is a simple process of evaluating a string literal that consists of variables, constants etc. Imagine you have player’s name and score stored in two constants as:
let playerName = "Jack" let playerScore = 99
Now you need to display a message to the player as "Congratulations Jack!. Your highest score is 99." Here, you need to a way to use the values of the constants in a single string.
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
Ta funkcija določa, ali se niz začne z določenimi znaki ali ne, in vrne logično vrednost. Vrne se, true
če se predpona niza ujema s podano vrednostjo, sicer se vrne false
.
Primer 13: hasPrefix ()
let someString = "Hello, World!" print(someString.hasPrefix("Hell")) print(someString.hasPrefix("hell"))
Ko zaženete program, bo rezultat:
pravilno napačno
6. hasSuffix
Ta funkcija določa, ali se niz konča z določenimi znaki ali ne, in vrne logično vrednost. Vrne se, true
če se končnica niza ujema s podano vrednostjo, sicer se vrne false
.
Primer 14: hasSuffix ()
print(someString.hasSuffix("rld!")) print(someString.hasSuffix("Rld!"))
Ko zaženete program, bo rezultat:
pravilno napačno