A karakterlánc-manipuláció alapvető fontosságú a szoftverfejlesztésben; a legtöbb programozási nyelv végül is biztosít egy karakterlánc típust. A karakterlánc karakterek sorozata: betűk, számok és szimbólumok.
A karakterlánc-manipuláció különféle alkalmazásoknál jól jöhet, a szövegfeldolgozástól és az adatelemzéstől a webfejlesztésig. A népszerű karakterlánc-kezelési műveletek az összefűzés, az adatellenőrzés, a kinyerés és a formázás. A Go egy „strings” nevű karakterlánc-manipulációs csomagot biztosít a szabványos könyvtárban.
A húrok csomagja
A húrok csomag különféle hasznos funkciókat kínál a karakterlánc-manipulációhoz és egyéb műveletekhez. A csomag tartalmaz funkciókat részkarakterlánc-műveletekhez, vágáshoz, karakterláncok összehasonlításához, karakterlánc-átalakításhoz, karakterlánc-építéshez, felosztáshoz és még sok máshoz.
A karakterlánc-csomagot úgy importálhatja, hogy megadja a csomag nevét az importálási listában.
import"húrok"
Alkarakterláncok keresése
A húrok csomag három funkciót biztosít az alsztringek kereséséhez: a Tartalmaz funkció, a Mindent tartalmaz funkciót, és a ContainsRune funkció.
A Tartalmaz függvény ellenőrzi, hogy a megadott karakterlánc tartalmazza-e az alsztringet. A Mindent tartalmaz függvény ellenőrzi, hogy a karakterlánc tartalmaz-e karaktereket az alsztringben, és a ContainsRune függvény ellenőrzi, hogy a karakterlánc tartalmaz-e rúnát (Unicode karaktert).
import (
"fmt"
"húrok"
)funcfő-() {
aString := "Helló Világ!"
részkarakterlánc := "Világ"
karakterek := "aeiou"
aRune := 'o'
fmt. Println (strings. Tartalmaz (aString, substring)) // Kimenet: igaz
fmt. Println (strings. Bármit tartalmaz (karakterlánc, karakterek)) // Kimenet: igaz
fmt. Println (strings. ContainsRune (aString, aRune)) // Kimenet: igaz
}
Egy részkarakterlánc indexét a Index, IndexAny, IndexByte, és IndexFunc funkciókat. A Index függvény egy részkarakterlánc indexét adja vissza, ha az egy másik megadott karakterláncban előfordul. A IndexAny függvény az első példány indexét adja vissza egy Unicode kódpont vagy -1 ha egyik szereplő sincs jelen.
import (
"fmt"
"húrok"
)funcfő-() {
aString := "Helló Világ!"
részkarakterlánc := "világ"
karakterek := "világ"
byteCharacter := byte('o')
aRune := rúna('o')fmt. Println (strings. Index (aString, részkarakterlánc)) // Kimenet: 7
fmt. Println (strings. IndexAny (karakterlánc, karakterek)) // Kimenet: 7
fmt. Println (strings. IndexByte (aString, byteCharacter)) // Kimenet: 4
f := func(r rúna)bool {
Visszatérés r == 'o'
}
fmt. Println (strings. IndexFunc (aString, f)) // Kimenet: 4
fmt. Println (strings. IndexRune (aString, aRune)) // Kimenet: 4
}
IndexByte a bájtkarakter első példányának indexét adja vissza a sztringben vagy -1. A IndexFunc függvény visszaadja az indexet az első Unicode-pont karakterláncába, amely megfelel egy adott függvénynek. Végül a IndexRune függvény a rúna Unicode kódpontjának első példányának indexét adja vissza.
Alkarakterláncok cseréje a Go-ban
A Cserélje ki és Cserélje ki az összeset függvény segítség az alsztringek cseréjéhez. A Cserélje ki függvény veszi a karakterláncot, az eredeti részkarakterláncot, valamint a helyettesítést és több cserét. A Cserélje ki az összeset függvény csak a karakterláncot, a kezdeti részkarakterláncot és a helyettesítést veszi fel.
import (
"fmt"
"húrok"
)
funcfő-() {
theString := "Ez egy módosítandó tesztsor."
fmt. Println (strings. Csere (theString, "van", "volt", 1))
fmt. Println (strings. Csere (theString, "van", "volt", -1))
fmt. Println (strings. ReplaceAll (TheString, "van", "volt"))
}
Vegye figyelembe, hogy a Replace és ReplaceAll parancsot is használhatja a karakterláncon belüli minden előfordulás lecserélésére.
Húrok felosztása és összekapcsolása
A húrok csomag tartalmazza a Hasított, SplitAfter, SplitAfterN, és SplitN függvények olyan karakterláncok felosztására, amelyek a karakterláncok egy szeletét adják vissza.
A Hasított metódus egy meghatározott határolóval hasít. Hasonló a Hasított módszer, a SplitAfter metódus felosztja a karakterláncot, de tartalmazza az elválasztót az eredmények között.
import (
"fmt"
"húrok"
)funcfő-() {
s := "Ez egy tesztsor, amelyet fel kell osztani."
fmt. Println (strings. Split (s, " "))
fmt. Println (strings. SplitAfter (s, " "))
fmt. Println (strings. SplitAfterN(s, " ", 3))
fmt. Println (strings. SplitN(s, " ", 3))
}
A SplitAfterN módszer hasonló a SplitAfter függvényt, kivéve, hogy a függvény felosztja a karakterláncot egy megadott maximális részkarakterláncra. A SplitN metódus felosztja a karakterláncot egy megadott maximális számra anélkül, hogy az elválasztót belefoglalná az alkarakterláncokba.
A karakterláncokat a Csatlakozik funkció a húrok csomag. A Csatlakozik függvény egy szeletet és egy határolót vesz fel.
import (
"fmt"
"húrok"
)
funcfő-() {
fmt. Println (strings. Csatlakozik([]húr{"Helló", "Világ"}, ":"))
// Kimenet: "Hello: World"
}
Manipulating String Case
A karakterlánc-kisbetűk manipulálása számos feladathoz hasznos, többek között dokumentációval dolgozni. Használhatja a Leengedni funkció kisbetűs, a ToUpper függvény a nagybetűkhöz, és a ToTitle funkció a címbetéthez.
import (
"fmt"
"húrok"
)funcfő-() {
s := – Ez egy próbafüzér.
fmt. Println (strings. Leengedni (s) // ez egy tesztkarakterlánc.
fmt. Println (strings. Felső (k) // EZ EGY TESZT.
fmt. Println (strings. Cím(ek) // EZ EGY TESZT.
}
String Building a Go-ban
A karakterláncépítők olyan típusok, amelyek lehetővé teszik a hatékony összefűzést a Go-ban. A bájtok. Puffer type az egyik leggyakrabban használt karakterláncépítő. A bájtok. Puffer A metódus bővíthető bájtpuffert valósít meg olvasási és írási módszerekkel a műveletekhez, lehetővé téve a hatékony karakterlánc-hozzáfűzést anélkül, hogy új másolatokat kellene készíteni, ellentétben a + művelet és a Csatlakozik funkció.
import (
"fmt"
"húrok"
)funcfő-() {
var b húrok. Építész// Írjon néhány karakterláncot az építőnek
b. WriteString("ez")
b. WriteString("van")
b. WriteString("egy")
b. WriteString("teszt")
b. WriteString("húr.")// Szerezd meg az építő hosszát
fmt. Println (b. Len())// Konvertálja az építőt karakterláncsá
str := b. Húr()
fmt. Println (str)// Állítsa vissza az építőt
b. Visszaállítás()// Írjon még néhány karakterláncot az építőnek
b. WriteString("ez")
b. WriteString("van")
b. WriteString("egy másik ")
b. WriteString("teszt")
b. WriteString("húr.")// Szerezze be az építő kapacitását
fmt. Println (b. Sapka())
// Konvertálja újra az építőt karakterláncsá
str = b. Húr()
fmt. Println (str)
}
A fő- funkció bemutatja, hogyan használhatja a húrok. Építész típus a hatékony húrépítéshez. A WriteString módszere a Húrok. Építész type kiterjeszti a karakterláncok sorozatát egymásra, és a Len metódus visszaadja a felépített karakterlánc hosszát.
A Húr metódus az építő tartalmát karakterláncsá alakítja, és a Visszaállítás metódus alaphelyzetbe állítja az építőt további karakterlánc-építéshez.
A Sapka metódus visszaadja az építő kapacitását. Ez az aktuális hely, amelyet a Go a karakterlánc számára lefoglalt.
String Trimming a Go-ban
A húrok csomag a karakterláncok vágására is lehetőséget biztosít a Vágás, TrimLeft, TrimPrefix, TrimRight, TrimSpace, és TrimSuffix funkciókat.
import (
"húrok"
"fmt"
)funcfő-() {
// a teljes karakterlánc
s := "Helló Világ!"// a vágás eleme
előtag := "Helló"
utótag := "Világ!"// levágja a karakterláncot a megadott vágáskészlet szerint
fmt. Println (strings. Trim (s, "!"))// szóközökkel levágja a karakterlánc elején és végén
fmt. Println (strings. TrimSpace (ek)// levágja a bal oldali karakterláncot a megadott vágáskészlet szerint
fmt. Println (strings. TrimLeft (s, "Helló"))// kivágja a jobb oldali karakterláncból a megadott trimmkészlettel
fmt. Println (strings. TrimRight (s, "Világ!"))// kivág egy előtagot
fmt. Println (strings. TrimPrefix (s, előtag))
// kivág egy adott utótagot
fmt. Println (strings. TrimSuffix (s, utótag))
}
A fő- A funkció bemutatja, hogyan használhatja a funkciókat a vágáshoz. A különböző funkciók levágják a s karakterlánc többféle módon:
Formázza a karakterláncokat a Go-ban
A Go szabványos könyvtár az fmt csomagot is tartalmazza a karakterlánc formázásához. Az fmt csomag C-stílusú formázási igéket használ a hatékony karakterláncformázás érdekében a Go-ban.