Swift Postavy a řetězce (s příklady)

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 Charactertypu 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 Stringmí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, Stringprotož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 Stringtypu 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í, truepokud 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í appendmetody.

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í appendmetody. 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, truepokud 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, truepokud 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 

Zajímavé články...