U ovom vodiču naučit ćete o upotrebi znakova i nizova u Swiftu. Također ćete naučiti različite operacije koje se mogu izvoditi na žicama i znakovima.
Što je lik?
Znak je jedan simbol (slovo, broj itd.). Znakovi u brzini su Character
tipa i deklariraju se kao:
neka nekaKarakter: Lik
Kako prijaviti i dodijeliti lik u Swiftu?
Možete dodijeliti vrijednost u vrsti znaka isto kao i string pomoću dvostrukih navodnika, " "
ali unutar navodnika treba sadržavati samo jedan znak" "
.
Ako trebate uključiti više od jednog znaka, trebate ga definirati String
umjesto Character
.
Primjer 1: Deklariranje i dodjeljivanje znaka
let someCharacter:Character = “H” let specialCharacter:Character = “@” print(someCharacter) print(specialCharacter)
Kada pokrenete program, izlaz će biti:
H @
Primjer 2: Dodjela više od jednog znaka (ne radi)
Ali ako pokušate dodijeliti dva simbola unutar znaka kao
/* This will give an error Changing the type to String will fix it. */ let failableCharacter:Character = "H@" print(failableCharacter)
Kada pokušate pokrenuti gornji kod, dobit ćete pogrešku kao:
Nije moguće pretvoriti vrijednost tipa String u znak.
Stvaranje lika pomoću unicode i escape sekvence
Također možete stvoriti posebnu vrstu znakova za npr. Emojije pomoću unicoda. Možete stvoriti unicode pomoću izlazne sekvence u (n) (unicode kodna točka, n je u heksadecimalnom obliku).
Primjer 3: Stvaranje unicode znaka
let heartShape:Character = "u(2665)" print(heartShape)
Kada pokrenete program, izlaz će biti:
♥
U gornjem primjeru iz koda je stvoren lik u obliku srca U+2665
. Iako u(2665)
je uključen u dvostruke navodnike, kompajler ga ne tretira kao String
zato što smo koristili escape sekvencu u(n)
. Izbjegavajući niz ne predstavlja sam sebe kad je uključen u doslovno.
Što je niz?
Niz je jednostavno skup znakova. Žice u Swiftu su String
tipa i deklarirane su kao:
neka someString: String
Kako prijaviti i dodijeliti niz u Swiftu?
Vrijednost u tipu String možete dodijeliti pomoću string literala. Znakovni niz je skup znakova okružen dvostrukim navodnicima " "
.
Primjer 4: Deklariranje i dodjeljivanje niza
let someString:String = "Hello, world!" let someMessage = "I love Swift." print(someString) print(someMessage)
Kada pokrenete program, izlaz će biti:
Pozdrav svijete! Volim Swifta.
Ovdje su i, "Hello, world!"
i "I love Swift."
string znakovni literali korišteni za stvaranje niznih varijabli someString odnosno someMessage.
Operacije na nizu
U Stringu postoje neke ugrađene funkcije i svojstva za rješavanje najčešće korištenih operacija. Na primjer: da biste spojili nizove, promijenite ih u velika ili velika slova. Istražimo neke često korištene operacije u nastavku:
Usporedba nizova
Jednostavno možete provjeriti jesu li dva niza jednaka ili ne pomoću operatora usporedbe (==)
. Operator vraća return true
ako su oba niza jednaka, inače se vraća false
.
Primjer 5: Usporedba nizova u Swiftu
let someString = "Hello, world!" let someMessage = "I love Swift." let someAnotherMessage = "Hello, world!" print(someString == someMessage) print(someString == someAnotherMessage)
Kada pokrenete program, izlaz će biti:
lažno istinito
Spajanje nizova
Dvije različite vrijednosti niza mogu se dodati zajedno s operatorom zbrajanja (+)
ili pomoću složenog operatora dodjele (+=)
. Također možete dodati znak / niz u niz pomoću append
metode.
Primjer 6: Spajanje nizova u Swiftu
let helloStr = "Hello, " let worldStr = "World" var result = helloStr + worldStr print(result) result.append("!") print(result)
Kada pokrenete program, izlaz će biti:
Pozdrav, svijet Pozdrav, svijet!
U gore navedenom programu stvorili smo rezultat niza dodavanjem helloStr i worldStr pomoću + operatora. Dakle, na ekranu se print(result)
prikazuje Hello, World .
Također možete dodati bilo koji znak ili niz pomoću append
metode. result.append("!")
dodaje !
znak na kraju niza. Dakle, print(result)
izlazi Hello, World! na ekranu.
Spajanje nizova pomoću naprednog operatora dodjele
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
Ova funkcija određuje započinje li niz s određenim znakovima ili ne i vraća logičku vrijednost. Vraća se true
ako se prefiks niza podudara s navedenom vrijednošću, u suprotnom se vraća false
.
Primjer 13: hasPrefix ()
let someString = "Hello, World!" print(someString.hasPrefix("Hell")) print(someString.hasPrefix("hell"))
Kada pokrenete program, izlaz će biti:
točno netočno
6. imaSuffix
Ova funkcija određuje završava li niz određenim znakovima ili ne i vraća logičku vrijednost. Vraća se true
ako se sufiks niza podudara s navedenom vrijednošću, u suprotnom se vraća false
.
Primjer 14: hasSuffix ()
print(someString.hasSuffix("rld!")) print(someString.hasSuffix("Rld!"))
Kada pokrenete program, izlaz će biti:
točno netočno