V tomto kurzu se dozvíte o používání znaků a řetězců ve Swiftu. Naučíte se také různé operace, které lze provádět s řetězci a znaky.
Co je to postava?
Znak je jeden symbol (písmeno, číslo atd.). Znak v Swift jsou Character
typu a je deklarován jako:
nechte nějakou Postavu: Znak
Jak deklarovat a přiřadit znak v Swift?
Hodnotu můžete přiřadit v typu Znak jako String pomocí uvozovek, " "
ale uvnitř uvozovek by měla obsahovat pouze jeden znak" "
.
Pokud potřebujete zahrnout více než jeden znak, musíte jej definovat String
místo Character
.
Příklad 1: Deklarace a přiřazení znaku
let someCharacter:Character = “H” let specialCharacter:Character = “@” print(someCharacter) print(specialCharacter)
Když spustíte program, výstup bude:
H @
Příklad 2: Přiřazení více než jednoho znaku (nefunguje)
Ale pokud se pokusíte přiřadit dva symboly uvnitř postavy jako
/* This will give an error Changing the type to String will fix it. */ let failableCharacter:Character = "H@" print(failableCharacter)
Při pokusu o spuštění výše uvedeného kódu se zobrazí chyba jako:
Nelze převést hodnotu typu String na Character.
Vytváření znaků pomocí unicode a escape sekvence
Můžete také vytvořit speciální typ znaků, například emodži pomocí unicode. Unicode můžete vytvořit pomocí escape sekvence u (n) (unicode code point, n is in hexadecimal).
Příklad 3: Vytvoření znaku unicode
let heartShape:Character = "u(2665)" print(heartShape)
Když spustíte program, výstup bude:
♥
Ve výše uvedeném příkladu byl znak tvaru srdce vytvořen z kódu U+2665
. Ačkoli u(2665)
je obsažen v uvozovkách, kompilátor to nezachází jako, String
protože jsme použili escape sekvenci u(n)
. Úniková sekvence se nepředstavuje, pokud je zahrnuta v literálu.
Co je to řetězec?
Řetězec je jednoduše sbírka znaků. Řetězce v Swift jsou String
typu a deklarovány jako:
let someString: String
Jak deklarovat a přiřadit řetězec v Swift?
Hodnotu v typu String můžete přiřadit pomocí řetězcových literálů. Řetězcový literál je kolekce znaků obklopených uvozovkami " "
.
Příklad 4: Deklarace a přiřazení řetězce
let someString:String = "Hello, world!" let someMessage = "I love Swift." print(someString) print(someMessage)
Když spustíte program, výstup bude:
Ahoj světe! Miluji Swifta.
Zde "Hello, world!"
a "I love Swift."
jsou řetězcové literály používané k vytváření řetězcových proměnných someString a someMessage.
Operace na řetězci
Ve Stringu jsou některé integrované funkce a vlastnosti, které se zabývají nejčastěji používanými operacemi. Například: Chcete-li spojit řetězce, změňte je na velká písmena nebo velká písmena. Prozkoumejme níže často používané operace:
Porovnání řetězců
Pomocí operátoru porovnání můžete jednoduše zkontrolovat, zda jsou dva řetězce stejné nebo ne (==)
. Operátor vrátí vrátí, true
pokud jsou oba řetězce stejné, jinak vrátí false
.
Příklad 5: Porovnání řetězců v Swiftu
let someString = "Hello, world!" let someMessage = "I love Swift." let someAnotherMessage = "Hello, world!" print(someString == someMessage) print(someString == someAnotherMessage)
Když spustíte program, výstup bude:
nepravda pravda
Zřetězení řetězců
Dvě různé hodnoty řetězců lze přidat společně s operátorem přidání (+)
nebo pomocí operátoru složeného přiřazení (+=)
. Můžete také přidat znak / řetězec do řetězce pomocí append
metody.
Příklad 6: Zřetězení řetězců v Swiftu
let helloStr = "Hello, " let worldStr = "World" var result = helloStr + worldStr print(result) result.append("!") print(result)
Když spustíte program, výstup bude:
Ahoj, svět Ahoj, svět!
Ve výše uvedeném programu jsme vytvořili výsledek řetězce připojením helloStr a worldStr pomocí operátoru +. Takže print(result)
výstupy Hello, World na obrazovce.
Můžete také připojit libovolný znak nebo řetězec pomocí append
metody. result.append("!")
připojí !
znak na konec řetězce. Takže print(result)
výstupy Hello, World! na obrazovce.
Zřetězení řetězců pomocí operátoru pokročilého přiřazení
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
Tato funkce určuje, zda řetězec začíná určitými znaky nebo ne, a vrací logickou hodnotu. Vrátí se, true
pokud se předpona řetězce shoduje s poskytnutou hodnotou, jinak se vrátí false
.
Příklad 13: hasPrefix ()
let someString = "Hello, World!" print(someString.hasPrefix("Hell")) print(someString.hasPrefix("hell"))
Když spustíte program, výstup bude:
true false
6. hasSuffix
Tato funkce určuje, zda řetězec končí určitými znaky nebo ne, a vrací logickou hodnotu. Vrátí se, true
pokud se přípona řetězce shoduje s poskytnutou hodnotou, jinak se vrátí false
.
Příklad 14: hasSuffix ()
print(someString.hasSuffix("rld!")) print(someString.hasSuffix("Rld!"))
Když spustíte program, výstup bude:
true false