Σε αυτό το σεμινάριο, θα μάθετε για τη χρήση χαρακτήρων και χορδών στο Swift. Θα μάθετε επίσης διαφορετικές λειτουργίες που μπορούν να εκτελεστούν σε συμβολοσειρές και χαρακτήρες.
Τι είναι ο χαρακτήρας;
Ένας χαρακτήρας είναι ένα μόνο σύμβολο (γράμμα, αριθμός κ.λπ.). Ο χαρακτήρας σε γρήγορο χαρακτήρα είναι Character
τύπου και δηλώνεται ως:
αφήστε μερικάCharacter: Character
Πώς να δηλώσετε και να εκχωρήσετε έναν χαρακτήρα στο Swift;
Μπορείτε να αντιστοιχίσετε τιμή σε τύπο χαρακτήρα όπως το String χρησιμοποιώντας διπλά εισαγωγικά, " "
αλλά θα πρέπει να περιέχει μόνο έναν χαρακτήρα μέσα στα εισαγωγικά " "
.
Εάν πρέπει να συμπεριλάβετε περισσότερους από έναν χαρακτήρες, πρέπει να τον ορίσετε String
αντί Character
.
Παράδειγμα 1: Δήλωση και εκχώρηση χαρακτήρα
let someCharacter:Character = “H” let specialCharacter:Character = “@” print(someCharacter) print(specialCharacter)
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Η @
Παράδειγμα 2: Εκχώρηση περισσότερων από ενός χαρακτήρων (Δεν λειτουργεί)
Αλλά αν προσπαθήσετε να αντιστοιχίσετε δύο σύμβολα μέσα στον χαρακτήρα ως
/* This will give an error Changing the type to String will fix it. */ let failableCharacter:Character = "H@" print(failableCharacter)
Όταν προσπαθείτε να εκτελέσετε τον παραπάνω κώδικα, θα λάβετε ένα σφάλμα ως:
Δεν είναι δυνατή η μετατροπή της τιμής του τύπου String σε Character.
Δημιουργία χαρακτήρα χρησιμοποιώντας ακολουθία unicode και διαφυγής
Μπορείτε επίσης να δημιουργήσετε ειδικό τύπο χαρακτήρων για το em.ji em χρησιμοποιώντας unicodes. Μπορείτε να δημιουργήσετε έναν unicode χρησιμοποιώντας ακολουθία διαφυγής u (n) (σημείο κωδικού unicode, το n είναι σε δεκαεξαδικό).
Παράδειγμα 3: Δημιουργία χαρακτήρα unicode
let heartShape:Character = "u(2665)" print(heartShape)
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
♥
Στο παραπάνω παράδειγμα, ένας χαρακτήρας σε σχήμα καρδιάς δημιουργήθηκε από κώδικα U+2665
. Αν u(2665)
και περιλαμβάνεται σε διπλά εισαγωγικά, ο μεταγλωττιστής δεν το αντιμετωπίζει ως String
επειδή χρησιμοποιήσαμε την ακολουθία διαφυγής u(n)
. Μια ακολουθία διαφυγής δεν αντιπροσωπεύεται όταν περιλαμβάνεται στην κυριολεκτική.
Τι είναι μια χορδή;
Μια συμβολοσειρά είναι απλώς μια συλλογή χαρακτήρων. Οι συμβολοσειρές στο Swift είναι String
τύπου και δηλώνονται ως:
ας κάνουμε κάποιο String: String
Πώς να δηλώσετε και να εκχωρήσετε μια συμβολοσειρά στο Swift;
Μπορείτε να εκχωρήσετε τιμή σε τύπο συμβολοσειράς χρησιμοποιώντας γραμματοσειρές συμβολοσειράς. Μια συμβολοσειρά γραμματοσειράς είναι μια συλλογή χαρακτήρων με διπλά εισαγωγικά " "
.
Παράδειγμα 4: Δήλωση και εκχώρηση συμβολοσειράς
let someString:String = "Hello, world!" let someMessage = "I love Swift." print(someString) print(someMessage)
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Γειά σου Κόσμε! Λατρεύω το Swift.
Εδώ, "Hello, world!"
και οι δύο και "I love Swift."
είναι κυριολεκτικές συμβολοσειρές χρησιμοποιούνται για τη δημιουργία μεταβλητών συμβολοσειράς someString και someMessage αντίστοιχα.
Λειτουργίες σε μια συμβολοσειρά
Υπάρχουν ορισμένες ενσωματωμένες λειτουργίες και ιδιότητες στο String για την αντιμετώπιση των πιο συχνά χρησιμοποιούμενων λειτουργιών. Για παράδειγμα: για να ενώσετε συμβολοσειρές, αλλάξτε το σε κεφαλαία ή κεφαλαιοποιήστε το. Ας διερευνήσουμε μερικές παρακάτω λειτουργίες που χρησιμοποιούνται συχνά:
Σύγκριση συμβολοσειρών
Μπορείτε απλώς να ελέγξετε αν δύο χορδές είναι ίσες ή όχι χρησιμοποιώντας το χειριστή σύγκρισης (==)
. Ο χειριστής επιστρέφει επιστροφές true
εάν και οι δύο χορδές είναι ίσες, διαφορετικά επιστρέφει false
.
Παράδειγμα 5: Σύγκριση συμβολοσειρών στο Swift
let someString = "Hello, world!" let someMessage = "I love Swift." let someAnotherMessage = "Hello, world!" print(someString == someMessage) print(someString == someAnotherMessage)
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
λάθος αλήθεια
Συνδυασμός συμβολοσειράς
Μπορούν να προστεθούν δύο διαφορετικές τιμές συμβολοσειρών μαζί με τον τελεστή προσθήκης (+)
ή χρησιμοποιώντας τον τελεστή ανάθεσης σύνθετων (+=)
. Μπορείτε επίσης να προσθέσετε έναν χαρακτήρα / συμβολοσειρά σε μια συμβολοσειρά χρησιμοποιώντας τη append
μέθοδο.
Παράδειγμα 6: Συνένωση συμβολοσειρών στο Swift
let helloStr = "Hello, " let worldStr = "World" var result = helloStr + worldStr print(result) result.append("!") print(result)
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Γεια, Κόσμος Γεια, Κόσμος!
Στο παραπάνω πρόγραμμα δημιουργήσαμε ένα αποτέλεσμα συμβολοσειράς προσθέτοντας helloStr και worldStr χρησιμοποιώντας το + χειριστή. Έτσι, print(result)
βγάζει το Hello, World στην οθόνη.
Μπορείτε επίσης να προσθέσετε οποιοδήποτε χαρακτήρα ή συμβολοσειρά χρησιμοποιώντας τη append
μέθοδο. result.append("!")
επισυνάπτει έναν !
χαρακτήρα στο τέλος της συμβολοσειράς. Έτσι, print(result)
έξοδο Γεια, Κόσμος! στην οθόνη.
Συνδυασμός συμβολοσειράς χρησιμοποιώντας προηγμένο χειριστή ανάθεσης
Μπορούμε επίσης να χρησιμοποιήσουμε προηγμένο χειριστή ανάθεσης (+ =) για να προσθέσουμε συμβολοσειρά.
Παράδειγμα 7: Συνδυασμός συμβολοσειράς χρησιμοποιώντας χειριστή + =
var helloStr = "Hello, " let worldStr = "World!" helloStr += worldStr print(helloStr)
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Γειά σου Κόσμε!
Παρατηρήστε τη χρήση του var αντί του let in helloStr. Εάν έχετε ορίσει helloStr μια σταθερή χρήση let, δεν μπορείτε να το αλλάξετε αργότερα χρησιμοποιώντας το +=
χειριστή και τελικά να λάβετε ένα σφάλμα. Έτσι, πρέπει να ορίσετε helloStr μια μεταβλητή.
Παρεμβολή συμβολοσειράς
Είναι μια απλή διαδικασία αξιολόγησης μιας κυριολεκτικής συμβολοσειράς που αποτελείται από μεταβλητές, σταθερές κ.λπ. Φανταστείτε ότι έχετε αποθηκεύσει το όνομα και τη βαθμολογία του παίκτη σε δύο σταθερές ως:
let playerName = "Jack" Αφήστε τον παίκτηScore = 99
Τώρα πρέπει να εμφανίσετε ένα μήνυμα στον παίκτη ως "Συγχαρητήρια Jack !. Το υψηλότερο σκορ σας είναι 99." Εδώ, πρέπει να χρησιμοποιήσετε έναν τρόπο για να χρησιμοποιήσετε τις τιμές των σταθερών σε μία συμβολοσειρά.
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
Αυτή η συνάρτηση καθορίζει εάν μια συμβολοσειρά ξεκινά με συγκεκριμένους χαρακτήρες ή όχι και επιστρέφει μια δυαδική τιμή. Επιστρέφει true
εάν το πρόθεμα συμβολοσειράς ταιριάζει με την παρεχόμενη τιμή διαφορετικά επιστρέφει false
.
Παράδειγμα 13: hasPrefix ()
let someString = "Hello, World!" print(someString.hasPrefix("Hell")) print(someString.hasPrefix("hell"))
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Σωστό Λάθος
6. hasSuffix
Αυτή η συνάρτηση καθορίζει εάν μια συμβολοσειρά τελειώνει με συγκεκριμένους χαρακτήρες ή όχι και επιστρέφει μια δυαδική τιμή. Επιστρέφει true
εάν το επίθημα συμβολοσειράς ταιριάζει με την παρεχόμενη τιμή διαφορετικά επιστρέφει false
.
Παράδειγμα 14: hasSuffix ()
print(someString.hasSuffix("rld!")) print(someString.hasSuffix("Rld!"))
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Σωστό Λάθος