W tym samouczku dowiesz się o użyciu znaków i ciągów znaków w języku Swift. Dowiesz się również różnych operacji, które można wykonać na łańcuchach i znakach.
Co to jest postać?
Znak to pojedynczy symbol (litera, cyfra itp.). Postacie w jezyku są Character
typu i są deklarowane jako:
niech someCharacter: Character
Jak zadeklarować i przypisać postać w Swift?
Możesz przypisać wartość typu znakowego tak samo jak ciąg znaków, używając podwójnych cudzysłowów, " "
ale powinna zawierać tylko jeden znak w cudzysłowie " "
.
Jeśli chcesz uwzględnić więcej niż jeden znak, musisz go zdefiniować String
zamiast Character
.
Przykład 1: Zadeklarowanie i przypisanie postaci
let someCharacter:Character = “H” let specialCharacter:Character = “@” print(someCharacter) print(specialCharacter)
Po uruchomieniu programu wynik będzie następujący:
H @
Przykład 2: Przypisywanie więcej niż jednego znaku (nie działa)
Ale jeśli spróbujesz przypisać dwa symbole wewnątrz znaku jako
/* This will give an error Changing the type to String will fix it. */ let failableCharacter:Character = "H@" print(failableCharacter)
Przy próbie uruchomienia powyższego kodu pojawi się błąd:
Nie można przekonwertować wartości typu String na Character.
Tworzenie postaci za pomocą Unicode i sekwencji ucieczki
Możesz także tworzyć specjalne typy znaków dla emoji .eg, używając Unicodes. Możesz stworzyć Unicode używając sekwencji ucieczki u (n) (punkt kodowy Unicode, n jest szesnastkowo).
Przykład 3: Tworzenie znaku Unicode
let heartShape:Character = "u(2665)" print(heartShape)
Po uruchomieniu programu wynik będzie następujący:
♥
W powyższym przykładzie znak w kształcie serca został utworzony z kodu U+2665
. Chociaż u(2665)
jest ujęty w cudzysłowy, kompilator nie traktuje go jako znaku, String
ponieważ użyliśmy sekwencji ucieczki u(n)
. Sekwencja ucieczki nie reprezentuje siebie, gdy jest zawarta w literale.
Co to jest ciąg?
Ciąg to po prostu zbiór znaków. Ciągi znaków w języku Swift są String
typu i zadeklarowane jako:
niech someString: String
Jak zadeklarować i przypisać ciąg znaków w Swift?
Wartość typu String można przypisać za pomocą literałów ciągu. Literał łańcuchowy to zbiór znaków ujętych w podwójne cudzysłowy " "
.
Przykład 4: Deklarowanie i przypisywanie łańcucha
let someString:String = "Hello, world!" let someMessage = "I love Swift." print(someString) print(someMessage)
Po uruchomieniu programu wynik będzie następujący:
Witaj świecie! Uwielbiam Swift.
Tutaj oba "Hello, world!"
i "I love Swift."
są literałami łańcuchowymi używanymi do tworzenia zmiennych łańcuchowych, odpowiednio, someString i someMessage.
Operacje na łańcuchu
W łańcuchu jest kilka wbudowanych funkcji i właściwości, które pozwalają radzić sobie z najczęściej używanymi operacjami. Na przykład: aby połączyć ciągi znaków, zmień je na wielkie lub wielkie. Przyjrzyjmy się kilku często używanym operacjom poniżej:
Porównanie ciągów
Możesz po prostu sprawdzić, czy dwa łańcuchy są równe, czy nie, używając operatora porównania (==)
. Operator zwraca zwraca, true
jeśli oba ciągi są równe, w przeciwnym razie zwraca false
.
Przykład 5: Porównanie ciągów w języku Swift
let someString = "Hello, world!" let someMessage = "I love Swift." let someAnotherMessage = "Hello, world!" print(someString == someMessage) print(someString == someAnotherMessage)
Po uruchomieniu programu wynik będzie następujący:
fałsz PRAWDA
Konkatenacja ciągów
Dwie różne wartości ciągów można dodać razem z operatorem dodawania (+)
lub za pomocą operatora przypisania złożonego (+=)
. Możesz również dołączyć znak / ciąg do ciągu przy użyciu append
metody.
Przykład 6: konkatenacja ciągów znaków w języku Swift
let helloStr = "Hello, " let worldStr = "World" var result = helloStr + worldStr print(result) result.append("!") print(result)
Po uruchomieniu programu wynik będzie następujący:
Witaj świecie Witaj świecie!
W powyższym programie utworzyliśmy wynik typu string , dołączając helloStr i worldStr za pomocą operatora +. Tak więc na ekranie print(result)
wyświetla się Hello, World .
Możesz również dołączyć dowolny znak lub ciąg przy użyciu append
metody. result.append("!")
dołącza !
znak na końcu łańcucha. Tak więc, print(result)
wyświetla Hello, World! na ekranie.
Konkatenacja ciągów znaków przy użyciu zaawansowanego operatora przypisania
Możemy również użyć zaawansowanego operatora przypisania (+ =), aby dołączyć ciąg.
Przykład 7: konkatenacja ciągów przy użyciu operatora + =
var helloStr = "Hello, " let worldStr = "World!" helloStr += worldStr print(helloStr)
Po uruchomieniu programu wynik będzie następujący:
Witaj świecie!
Zwróć uwagę na użycie var zamiast let in helloStr. Jeśli zdefiniowałeś helloStr stałą za pomocą let, nie możesz jej później zmienić za pomocą +=
operatora i ostatecznie otrzymać błąd. Musisz więc zdefiniować zmienną helloStr.
Interpolacja ciągów
Jest to prosty proces oceny literału ciągu, który składa się ze zmiennych, stałych itp. Wyobraź sobie, że masz imię gracza i wynik zapisany w dwóch stałych jako:
let playerName = "Jack" niech playerScore = 99
Teraz musisz wyświetlić wiadomość dla gracza jako „Congratulations Jack !. Twój najwyższy wynik to 99”. Tutaj musisz znaleźć sposób na użycie wartości stałych w jednym ciągu.
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 funkcja określa, czy ciąg zaczyna się od określonych znaków, czy nie, i zwraca wartość logiczną. Zwraca, true
jeśli prefiks ciągu pasuje do podanej wartości, w przeciwnym razie zwraca false
.
Przykład 13: hasPrefix ()
let someString = "Hello, World!" print(someString.hasPrefix("Hell")) print(someString.hasPrefix("hell"))
Po uruchomieniu programu wynik będzie następujący:
prawda fałsz
6. hasSuffix
Ta funkcja określa, czy ciąg kończy się określonymi znakami, czy nie, i zwraca wartość logiczną. Zwraca, true
jeśli sufiks ciągu pasuje do podanej wartości, w przeciwnym razie zwraca false
.
Przykład 14: hasSuffix ()
print(someString.hasSuffix("rld!")) print(someString.hasSuffix("Rld!"))
Po uruchomieniu programu wynik będzie następujący:
prawda fałsz