Szybkie znaki i ciągi (z przykładami)

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ą Charactertypu 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ć Stringzamiast 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, Stringponieważ 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ą Stringtypu 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, truejeś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 appendmetody.

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 appendmetody. 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, truejeś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, truejeś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 

Interesujące artykuły...