Αναγνώστες σαν εσάς βοηθούν στην υποστήριξη του MUO. Όταν κάνετε μια αγορά χρησιμοποιώντας συνδέσμους στον ιστότοπό μας, ενδέχεται να κερδίσουμε μια προμήθεια θυγατρικών. Διαβάστε περισσότερα.

Ο χειρισμός συμβολοσειρών είναι θεμελιώδης στην ανάπτυξη λογισμικού. Οι περισσότερες γλώσσες προγραμματισμού παρέχουν, τελικά, έναν τύπο συμβολοσειράς. Μια συμβολοσειρά είναι μια ακολουθία χαρακτήρων: γράμματα, αριθμοί και σύμβολα.

Ο χειρισμός συμβολοσειρών είναι χρήσιμος για διάφορες εφαρμογές, από την επεξεργασία κειμένου και την ανάλυση δεδομένων έως την ανάπτυξη ιστού. Δημοφιλείς λειτουργίες χειρισμού συμβολοσειρών είναι η συνένωση, η επικύρωση δεδομένων, η εξαγωγή και η μορφοποίηση. Το Go παρέχει ένα πακέτο χειρισμού συμβολοσειρών με το όνομα "strings" στην τυπική βιβλιοθήκη.

Πακέτο χορδών

ο χορδές Το πακέτο παρέχει διάφορες χρήσιμες λειτουργίες για χειρισμό συμβολοσειρών και άλλες λειτουργίες. Το πακέτο περιλαμβάνει λειτουργικότητα για λειτουργίες υποσυμβολοσειράς, περικοπή, σύγκριση συμβολοσειρών, μετατροπή συμβολοσειρών, δημιουργία συμβολοσειρών, διαχωρισμό και πολλά άλλα.

instagram viewer

Μπορείτε να εισαγάγετε το πακέτο συμβολοσειρών καθορίζοντας το όνομα του πακέτου στη λίστα εισαγωγών σας.

εισαγωγή"χορδές"

Αναζήτηση για Substrings

ο χορδές Το πακέτο παρέχει τρεις λειτουργίες για την αναζήτηση υποσυμβολοσειρών: το Περιέχει λειτουργία, η Περιέχει Οποιοδήποτε λειτουργία, και το Περιέχει Rune λειτουργία.

ο Περιέχει Η συνάρτηση ελέγχει εάν η καθορισμένη συμβολοσειρά περιέχει την υποσυμβολοσειρά. ο Περιέχει Οποιοδήποτε Η συνάρτηση ελέγχει εάν η συμβολοσειρά περιέχει χαρακτήρες στην υποσυμβολοσειρά και το Περιέχει Rune Η συνάρτηση ελέγχει εάν η συμβολοσειρά περιέχει έναν ρούνο (χαρακτήρα Unicode).

εισαγωγή (
"fmt"
"χορδές"
)

funcκύριος() {
aString := "Γειά σου Κόσμε!"
υποσυμβολοσειρά := "Κόσμος"
χαρακτήρες := "αειου"
aRune := 'ο'

fmt. Println (συμβολοσειρές. Περιέχει (aString, substring)) // Έξοδος: true
fmt. Println (συμβολοσειρές. ContainsAny (aString, χαρακτήρες)) // Έξοδος: true
fmt. Println (συμβολοσειρές. ContainsRune (aString, aRune)) // Έξοδος: true
}

Μπορείτε να ανακτήσετε το ευρετήριο μιας υποσυμβολοσειράς με το Δείκτης, IndexAny, IndexByte, και IndexFunc λειτουργίες. ο Δείκτης Η συνάρτηση επιστρέφει το ευρετήριο μιας υποσυμβολοσειράς, εάν εμφανίζεται σε μια άλλη δεδομένη συμβολοσειρά. ο IndexAny η συνάρτηση επιστρέφει το ευρετήριο της πρώτης παρουσίας του ένα σημείο κωδικού Unicode ή -1 αν δεν υπάρχει κανένας από τους χαρακτήρες.

εισαγωγή (
"fmt"
"χορδές"
)

funcκύριος() {
aString := "Γειά σου Κόσμε!"
υποσυμβολοσειρά := "κόσμος"
χαρακτήρες := "κοσμος"
byteCharacter := ψηφιόλεξη('ο')
aRune := γράμμα του ρουνικού αλφάβητου('ο')

fmt. Println (συμβολοσειρές. Ευρετήριο (aString, substring)) // Έξοδος: 7
fmt. Println (συμβολοσειρές. IndexAny (aString, χαρακτήρες)) // Έξοδος: 7
fmt. Println (συμβολοσειρές. IndexByte (aString, byteCharacter)) // Έξοδος: 4

στ := funcγράμμα του ρουνικού αλφάβητου)bool {
ΕΠΙΣΤΡΟΦΗ r == 'ο'
}

fmt. Println (συμβολοσειρές. IndexFunc (aString, f)) // Έξοδος: 4
fmt. Println (συμβολοσειρές. IndexRune (aString, aRune)) // Έξοδος: 4
}

IndexByte επιστρέφει το ευρετήριο της πρώτης εμφάνισης του χαρακτήρα byte στη συμβολοσειρά ή -1. ο IndexFunc Η συνάρτηση επιστρέφει το ευρετήριο στη συμβολοσειρά του πρώτου σημείου Unicode που ικανοποιεί μια δεδομένη συνάρτηση. Τέλος, το IndexRune Η συνάρτηση επιστρέφει το ευρετήριο της πρώτης παρουσίας του σημείου κωδικού Unicode του ρούνου.

Αντικατάσταση δευτερευουσών συμβολοσειρών στο Go

ο Αντικαθιστώ και Αντικατάσταση όλων Βοήθεια συνάρτησης με την αντικατάσταση υποσυμβολοσειρών. ο Αντικαθιστώ η συνάρτηση παίρνει τη συμβολοσειρά, την αρχική υποσυμβολοσειρά και την αντικατάσταση και αρκετές αντικαταστάσεις. ο Αντικατάσταση όλων Η συνάρτηση παίρνει μόνο τη συμβολοσειρά, την αρχική υποσυμβολοσειρά και την αντικατάσταση.

εισαγωγή (
"fmt"
"χορδές"
)

funcκύριος() {
theString := "Αυτή είναι μια δοκιμαστική συμβολοσειρά που πρέπει να τροποποιηθεί."
fmt. Println (συμβολοσειρές. Αντικατάσταση (theString, "είναι", "ήταν", 1))
fmt. Println (συμβολοσειρές. Αντικατάσταση (theString, "είναι", "ήταν", -1))
fmt. Println (συμβολοσειρές. ReplaceAll (theString, "είναι", "ήταν"))
}

Σημειώστε ότι μπορείτε να χρησιμοποιήσετε τόσο το Replace όσο και το ReplaceAll για να αντικαταστήσετε κάθε εμφάνιση μέσα στη συμβολοσειρά.

Διαίρεση και ένωση χορδών

ο χορδές η συσκευασία περιέχει το Διαίρεση, SplitAfter, SplitAfterN, και SplitN συναρτήσεις για διαχωρισμό συμβολοσειρών που επιστρέφουν μια φέτα από τις συμβολοσειρές.

ο Διαίρεση Η μέθοδος διαχωρίζεται με έναν καθορισμένο οριοθέτη. Παρόμοια με το Διαίρεση μέθοδος, η SplitAfter μέθοδος χωρίζει τη συμβολοσειρά, αλλά περιλαμβάνει το διαχωριστικό στα αποτελέσματά της.

εισαγωγή (
"fmt"
"χορδές"
)

funcκύριος() {
s := "Αυτή είναι μια δοκιμαστική χορδή που πρέπει να χωριστεί."

fmt. Println (συμβολοσειρές. Διαχωρισμός (s, " "))
fmt. Println (συμβολοσειρές. SplitAfter (s, " "))
fmt. Println (συμβολοσειρές. SplitAfterN(s, " ", 3))
fmt. Println (συμβολοσειρές. SplitN(s, " ", 3))
}

ο SplitAfterN μέθοδος είναι παρόμοια με την SplitAfter συνάρτηση εκτός από το ότι η συνάρτηση χωρίζει τη συμβολοσειρά σε ένα καθορισμένο μέγιστο υποσυμβολοσειρών. ο SplitN Η μέθοδος χωρίζει τη συμβολοσειρά σε έναν καθορισμένο μέγιστο αριθμό χωρίς να περιλαμβάνει το διαχωριστικό στις υποσυμβολοσειρές.

Μπορείτε να ενώσετε χορδές με το Συμμετοχή λειτουργία από το χορδές πακέτο. ο Συμμετοχή η συνάρτηση παίρνει μια φέτα και έναν οριοθέτη.

εισαγωγή (
"fmt"
"χορδές"
)

funcκύριος() {
fmt. Println (συμβολοσειρές. Συμμετοχή([]σειρά{"Γειά σου", "Κόσμος"}, ":"))
// Έξοδος: "Hello: World"
}

Χειρισμός θήκης χορδών

Ο χειρισμός θήκης συμβολοσειράς είναι εύχρηστος για πολλές εργασίες, μεταξύ των οποίων εργασία με τεκμηρίωση. Μπορείτε να χρησιμοποιήσετε το Να μειώσει λειτουργία για πεζά, το ToUpper λειτουργία για κεφαλαία, και το ToTitle λειτουργία για περίβλημα τίτλου.

εισαγωγή (
"fmt"
"χορδές"
)

funcκύριος() {
s := "Αυτή είναι μια δοκιμαστική χορδή."

fmt. Println (συμβολοσειρές. ToLower (s)) // αυτή είναι μια δοκιμαστική συμβολοσειρά.
fmt. Println (συμβολοσειρές. ToUpper (s)) // ΑΥΤΗ ΕΙΝΑΙ ΜΙΑ ΔΟΚΙΜΑΣΤΙΚΗ ΣΥΜΒΟΣΗ.
fmt. Println (συμβολοσειρές. Τίτλος (οι)) // ΑΥΤΗ ΕΙΝΑΙ ΜΙΑ ΔΟΚΙΜΑΣΤΙΚΗ ΣΥΜΒΟΣΗ.
}

String Building in Go

Τα προγράμματα δημιουργίας συμβολοσειρών είναι ένας τύπος που επιτρέπει την αποτελεσματική συνένωση στο Go. ο byte. Ρυθμιστής Ο τύπος είναι ένας από τους ευρέως χρησιμοποιούμενους δημιουργούς χορδών. ο byte. Ρυθμιστής Η μέθοδος υλοποιεί ένα αναπτυσσόμενο buffer byte με μεθόδους ανάγνωσης και εγγραφής για λειτουργίες, επιτρέποντας αποτελεσματικές προσαρτήσεις συμβολοσειρών χωρίς να χρειάζεται να δημιουργηθούν νέα αντίγραφα, σε αντίθεση με το + λειτουργία και το Συμμετοχή λειτουργία.

εισαγωγή (
"fmt"
"χορδές"
)

funcκύριος() {
var β χορδές. Οικοδόμος

// Γράψτε μερικές συμβολοσειρές στο πρόγραμμα δημιουργίας
σι. WriteString("Αυτό ")
σι. WriteString("είναι ")
σι. WriteString("ένα ")
σι. WriteString("δοκιμή")
σι. WriteString("σειρά.")

// Λάβετε το μήκος του builder
fmt. Println (β. Len())

// Μετατροπή του builder σε συμβολοσειρά
str := β. Σειρά()
fmt. Println (str)

// Επαναφορά του builder
σι. Επαναφορά()

// Γράψτε μερικές ακόμη συμβολοσειρές στο πρόγραμμα δημιουργίας
σι. WriteString("Αυτό ")
σι. WriteString("είναι ")
σι. WriteString("αλλο ")
σι. WriteString("δοκιμή")
σι. WriteString("σειρά.")

// Αποκτήστε την ικανότητα του κατασκευαστή
fmt. Println (β. Καπάκι())

// Μετατρέψτε ξανά το πρόγραμμα δημιουργίας σε συμβολοσειρά
στρ = β. Σειρά()
fmt. Println (str)
}

ο κύριος η λειτουργία δείχνει πώς μπορείτε να χρησιμοποιήσετε το χορδές. Οικοδόμος τύπος για αποτελεσματική κατασκευή χορδών. ο WriteString μέθοδος του Χορδές. Οικοδόμος ο τύπος επεκτείνει την ακολουθία των χορδών μεταξύ τους και το Len μέθοδος επιστρέφει το μήκος της χτισμένης συμβολοσειράς.

ο Σειρά μέθοδος μετατρέπει το περιεχόμενο του builder σε μια συμβολοσειρά και το Επαναφορά Η μέθοδος επαναφέρει το builder για πρόσθετη δημιουργία συμβολοσειρών.

ο Καπάκι μέθοδος επιστρέφει την ικανότητα του builder. Αυτός είναι ο τρέχων χώρος που έχει διαθέσει η Go για τη συμβολοσειρά.

Περικοπή χορδών στο Go

ο χορδές Το πακέτο παρέχει επίσης λειτουργικότητα για το κόψιμο των χορδών στο Τακτοποίηση, TrimLeft, TrimPrefix, TrimRight, TrimSpace, και TrimSupfix λειτουργίες.

εισαγωγή (
"χορδές"
"fmt"
)

funcκύριος() {
// η πλήρης συμβολοσειρά
s := "Γειά σου Κόσμε!"

// το στοιχείο για την επένδυση
πρόθεμα := "Γειά σου"
επίθημα := "Κόσμος!"

// περικόπτει μια συμβολοσειρά με καθορισμένο σύνολο περικοπής
fmt. Println (συμβολοσειρές. Περικοπή (s, "!"))

// κόβεται με κενά στην αρχή και στο τέλος της συμβολοσειράς
fmt. Println (συμβολοσειρές. TrimSpace (α)

// περικοπές από την αριστερή συμβολοσειρά με καθορισμένο σύνολο περικοπής
fmt. Println (συμβολοσειρές. TrimLeft (s, "Γειά σου"))

// κόβεται από τη δεξιά συμβολοσειρά με καθορισμένο σύνολο περικοπής
fmt. Println (συμβολοσειρές. TrimRight (s, "Κόσμος!"))

// κόβει ένα πρόθεμα
fmt. Println (συμβολοσειρές. TrimPrefix (s, πρόθεμα))

// κόβει ένα συγκεκριμένο επίθημα
fmt. Println (συμβολοσειρές. TrimSuffix (s, επίθημα))
}

ο κύριος Η λειτουργία δείχνει πώς μπορείτε να χρησιμοποιήσετε τις λειτουργίες για περικοπή. Οι διαφορετικές λειτουργίες περικόπτουν το μικρό χορδή με διάφορους τρόπους:

Μπορείτε να μορφοποιήσετε συμβολοσειρές στο Go

Η τυπική βιβλιοθήκη Go παρέχει επίσης το πακέτο fmt για μορφοποίηση συμβολοσειρών. Το πακέτο fmt χρησιμοποιεί ρήματα μορφοποίησης τύπου C για αποτελεσματική μορφοποίηση συμβολοσειρών στο Go.