Manipulácia s reťazcami je základom vývoja softvéru; väčšina programovacích jazykov napokon poskytuje typ reťazca. Reťazec je postupnosť znakov: písmen, číslic a symbolov.
Manipulácia s reťazcami je užitočná pre rôzne aplikácie, od spracovania textu a analýzy údajov až po vývoj webových aplikácií. Populárne operácie manipulácie s reťazcami sú zreťazenie, overenie údajov, extrakcia a formátovanie. Go poskytuje balík na manipuláciu s reťazcami s názvom „strings“ v štandardnej knižnici.
Balík strún
The struny balík poskytuje rôzne užitočné funkcie na manipuláciu s reťazcami a ďalšie operácie. Balík obsahuje funkcie pre operácie s podreťazcami, orezávanie, porovnávanie reťazcov, konverziu reťazcov, vytváranie reťazcov, delenie a ďalšie.
Balík reťazcov môžete importovať zadaním názvu balíka v zozname importov.
importovať"struny"
Hľadanie podreťazcov
The struny
balík poskytuje tri funkcie na vyhľadávanie podreťazcov: the Obsahuje funkcia, ObsahujeAkýkoľvek funkcie a ObsahujeRune funkciu.The Obsahuje funkcia skontroluje, či zadaný reťazec obsahuje podreťazec. The ObsahujeAkýkoľvek funkcia skontroluje, či reťazec obsahuje nejaké znaky v podreťazci a ObsahujeRune funkcia skontroluje, či reťazec obsahuje runu (znak Unicode).
importovať (
"fmt"
"struny"
)funcHlavná() {
aString := "Ahoj Svet!"
podreťazec := "svet"
znaky := "aeiou"
aRune := 'o'
fmt. Println (reťazce. Obsahuje (aString, podreťazec)) // Výstup: true
fmt. Println (reťazce. ObsahujeAkýkoľvek (aString, znaky)) // Výstup: true
fmt. Println (reťazce. ContainsRune (aString, aRune)) // Výstup: true
}
Index podreťazca môžete získať pomocou Index, IndexAny, IndexByte, a IndexFunc funkcie. The Index funkcia vráti index podreťazca, ak sa vyskytuje v inom danom reťazci. The IndexAny funkcia vráti index prvej inštancie bod v kóde Unicode alebo -1 ak nie je prítomná žiadna z postáv.
importovať (
"fmt"
"struny"
)funcHlavná() {
aString := "Ahoj, svet!"
podreťazec := "svet"
znaky := "svet"
byteCharacter := byte('o')
aRune := runa('o')fmt. Println (reťazce. Index (aString, podreťazec)) // Výstup: 7
fmt. Println (reťazce. IndexAny (aString, znaky)) // Výstup: 7
fmt. Println (reťazce. IndexByte (aString, byteCharacter)) // Výstup: 4
f:= func(r runa)bool {
vrátiť r == 'o'
}
fmt. Println (reťazce. IndexFunc (aString, f)) // Výstup: 4
fmt. Println (reťazce. IndexRune (aString, aRune)) // Výstup: 4
}
IndexByte vráti index prvej inštancie bajtového znaku v reťazci resp -1. The IndexFunc funkcia vráti index do reťazca prvého bodu Unicode, ktorý spĺňa danú funkciu. Nakoniec, IndexRune funkcia vráti index prvej inštancie bodu kódu Unicode runy.
Výmena podreťazcov v Go
The Nahradiť a Nahradiť všetko funkcia pomáha pri nahrádzaní podreťazcov. The Nahradiť funkcia berie reťazec, pôvodný podreťazec a náhradu a niekoľko nahradení. The Nahradiť všetko funkcia preberá iba reťazec, počiatočný podreťazec a náhradu.
importovať (
"fmt"
"struny"
)
funcHlavná() {
reťazec := "Toto je testovací reťazec, ktorý sa má upraviť."
fmt. Println (reťazce. Nahradiť (reťazec, "je", "bol", 1))
fmt. Println (reťazce. Nahradiť (reťazec, "je", "bol", -1))
fmt. Println (reťazce. Nahradiť všetko (reťazec, "je", "bol"))
}
Všimnite si, že na nahradenie každého výskytu v reťazci môžete použiť obe možnosti Nahradiť aj Nahradiť všetko.
Delenie a spájanie strún
The struny balenie obsahuje Rozdeliť, SplitAfter, SplitAfterN, a SplitN funkcie na rozdelenie reťazcov, ktoré vracajú časť reťazcov.
The Rozdeliť metóda delí určeným oddeľovačom. Podobné ako Rozdeliť metóda, SplitAfter metóda rozdelí reťazec, ale vo svojich výsledkoch obsahuje oddeľovač.
importovať (
"fmt"
"struny"
)funcHlavná() {
s := "Toto je testovací reťazec, ktorý sa má rozdeliť."
fmt. Println (reťazce. Rozdeliť (s, " "))
fmt. Println (reťazce. SplitAfter (s, " "))
fmt. Println (reťazce. SplitAfterN(s, " ", 3))
fmt. Println (reťazce. SplitN(s, " ", 3))
}
The SplitAfterN metóda je podobná SplitAfter okrem toho, že funkcia rozdelí reťazec na určený maximálny počet podreťazcov. The SplitN metóda rozdelí reťazec na určený maximálny počet bez zahrnutia oddeľovača do podreťazcov.
Môžete spojiť reťazce s Pripojte sa funkcia z struny balík. The Pripojte sa funkcia má výsek a oddeľovač.
importovať (
"fmt"
"struny"
)
funcHlavná() {
fmt. Println (reťazce. Pripojte sa ([]reťazec{"Ahoj", "svet"}, ":"))
// Výstup: "Ahoj: Svet"
}
Manipulačné puzdro na strunu
Manipulácia so strunovým puzdrom je užitočná pri mnohých úlohách, vrátane práca s dokumentáciou. Môžete použiť Znížiť funkcia pre malé písmená, ToUpper funkcia pre písanie veľkých písmen a ToTitle funkcia pre malé a veľké písmená.
importovať (
"fmt"
"struny"
)funcHlavná() {
s := "Toto je testovací reťazec."
fmt. Println (reťazce. ToLower (s)) // toto je testovací reťazec.
fmt. Println (reťazce. Horná (s)) // TOTO JE TESTOVACÍ REŤAZEC.
fmt. Println (reťazce. Názov (y)) // TOTO JE TESTOVACÍ REŤAZEC.
}
String Building in Go
Tvorcovia reťazcov sú typom, ktorý umožňuje efektívne zreťazenie v Go. The bajtov. Buffer typ je jedným z bežne používaných staviteľov strún. The bajtov. Buffer metóda implementuje rozšíriteľnú vyrovnávaciu pamäť bajtov s metódami čítania a zápisu pre operácie, čo umožňuje efektívne pridávanie reťazcov bez potreby vytvárať nové kópie, na rozdiel od + prevádzka a Pripojte sa funkciu.
importovať (
"fmt"
"struny"
)funcHlavná() {
var b struny. Staviteľ// Napíšte niekoľko reťazcov do tvorcu
b. WriteString("toto")
b. WriteString("je ")
b. WriteString("a")
b. WriteString("test")
b. WriteString("šnúrka.")// Získajte dĺžku zostavovača
fmt. Println (b. Len())// Skonvertujte tvorca na reťazec
str := b. String()
fmt. Println (str)// Obnovte staviteľa
b. Reset()// Napíšte ďalšie reťazce do tvorcu
b. WriteString("toto")
b. WriteString("je ")
b. WriteString("ďalší ")
b. WriteString("test")
b. WriteString("šnúrka.")// Získanie kapacity tvorcu
fmt. Println (b. Cap())
// Znova skonvertujte builder na reťazec
str = b. String()
fmt. Println (str)
}
The Hlavná funkcia ukazuje, ako môžete použiť struny. Staviteľ typ pre efektívnu stavbu strún. The WriteString metóda Struny. Staviteľ typ rozširuje postupnosť reťazcov jeden na druhý a Len metóda vráti dĺžku vytvoreného reťazca.
The Reťazec metóda konvertuje obsah tvorcu na reťazec a Resetovať metóda resetuje staviteľa pre ďalšie vytváranie reťazcov.
The Čiapka metóda vracia kapacitu staviteľa. Toto je aktuálny priestor, ktorý Go pridelil pre reťazec.
Strihanie strún v Go
The struny balík tiež poskytuje funkcie na orezávanie strún v Orezať, TrimLeft, TrimPrefix, TrimRight, TrimSpace, a TrimSuffix funkcie.
importovať (
"struny"
"fmt"
)funcHlavná() {
// celý reťazec
s := "Ahoj Svet!"// prvok pre orezanie
predpona := "Ahoj"
prípona := "Svet!"// orezáva reťazec podľa určenej sady orezania
fmt. Println (reťazce. Orezať (s, "!"))// orezáva o medzery na začiatku a na konci reťazca
fmt. Println (reťazce. TrimSpace (s))// orezáva z ľavého reťazca podľa určenej sady orezania
fmt. Println (reťazce. TrimLeft (s, "Ahoj"))// orezáva z pravého reťazca podľa určenej sady orezania
fmt. Println (reťazce. TrimRight (s, "Svet!"))// orezáva predponu
fmt. Println (reťazce. TrimPrefix (s, predpona))
// orezáva konkrétnu príponu
fmt. Println (reťazce. TrimSufix (s, prípona))
}
The Hlavná funkcia ukazuje, ako môžete použiť funkcie na orezanie. Rôzne funkcie orezávajú s reťazec rôznymi spôsobmi:
V Go môžete formátovať reťazce
Štandardná knižnica Go poskytuje aj balík fmt na formátovanie reťazcov. Balík fmt používa formátovacie slovesá v štýle C na efektívne formátovanie reťazcov v Go.