Stringidega manipuleerimine on tarkvaraarenduses põhiline; enamik programmeerimiskeeli pakuvad lõppude lõpuks stringitüüpi. String on märkide jada: tähed, numbrid ja sümbolid.
Stringidega manipuleerimine tuleb kasuks erinevate rakenduste jaoks, alates tekstitöötlusest ja andmeanalüüsist kuni veebiarenduseni. Populaarsed stringidega manipuleerimise toimingud on konkateneerimine, andmete valideerimine, ekstraheerimine ja vormindamine. Go pakub standardteegis stringidega manipuleerimise paketti nimega "stringid".
Keelte pakett
The stringid pakett pakub erinevaid kasulikke funktsioone stringidega manipuleerimiseks ja muudeks toiminguteks. Pakett sisaldab funktsioone alamstringi toimingute, kärpimise, stringide võrdlemise, stringide teisendamise, stringide moodustamise, tükeldamise ja muu jaoks.
Stringipaketi saate importida, määrates impordiloendis paketi nime.
importida"stringid"
Alamstringide otsimine
The stringid pakett pakub alamstringide otsimiseks kolme funktsiooni: Sisaldab funktsioon, Sisaldab Mis tahes funktsioon ja Sisaldab Rune'i funktsiooni.
The Sisaldab funktsioon kontrollib, kas määratud string sisaldab alamstringi. The Sisaldab Mis tahes funktsioon kontrollib, kas string sisaldab alamstringis mingeid märke ja Sisaldab Rune'i funktsioon kontrollib, kas string sisaldab ruuni (Unicode märk).
importida (
"fmt"
"stringid"
)funcpeamine() {
aString := "Tere, Maailm!"
alamstring := "Maailm"
märgid := "aeiou"
aRune := 'o'
fmt. Println (stringid. Sisaldab (aString, alamstring)) // Väljund: tõsi
fmt. Println (stringid. Sisaldab mis tahes (String, märgid)) // Väljund: tõsi
fmt. Println (stringid. Sisaldab ruuni (aString, aRune)) // Väljund: tõsi
}
Alamstringi indeksi saate alla laadida nupuga Indeks, Indeks Igasugune, Indeksbaitja IndexFunc funktsioonid. The Indeks funktsioon tagastab alamstringi indeksi, kui see esineb teises antud stringis. The Indeks Igasugune funktsioon tagastab esimese eksemplari indeksi Unicode'i koodipunkt või -1 kui ühtegi tegelast pole kohal.
importida (
"fmt"
"stringid"
)funcpeamine() {
aString := "Tere, Maailm!"
alamstring := "maailm"
tähemärgid := "maailm"
byteCharacter := bait('o')
aRune := ruun('o')fmt. Println (stringid. Indeks (aString, alamstring)) // Väljund: 7
fmt. Println (stringid. IndexAny (String, tähemärgid)) // Väljund: 7
fmt. Println (stringid. Indeksbait (aString, byteCharacter)) // Väljund: 4
f := func(r ruun)bool {
tagasi r == 'o'
}
fmt. Println (stringid. IndexFunc (aString, f)) // Väljund: 4
fmt. Println (stringid. IndexRune (aString, aRune)) // Väljund: 4
}
Indeksbait tagastab baitmärgi esimese esinemisjuhtumi indeksi stringis või -1. The IndexFunc funktsioon tagastab indeksi esimese Unicode'i punkti stringi, mis vastab antud funktsioonile. Lõpuks, IndexRune funktsioon tagastab ruuni Unicode'i koodipunkti esimese eksemplari indeksi.
Alamstringide asendamine Go-s
The Asenda ja Asenda kõik funktsiooni abi alamstringide asendamisel. The Asenda funktsioon võtab stringi, algse alamstringi ning asendus ja mitu asendust. The Asenda kõik funktsioon võtab sisse ainult stringi, esialgse alamstringi ja asendus.
importida (
"fmt"
"stringid"
)
funcpeamine() {
theString := "See on teststring, mida tuleb muuta."
fmt. Println (stringid. Asenda (TheString, "on", "oli", 1))
fmt. Println (stringid. Asenda (TheString, "on", "oli", -1))
fmt. Println (stringid. Asenda kõik (string, "on", "oli"))
}
Pange tähele, et saate stringi iga esinemise asendamiseks kasutada nii käsku Asenda kui ka ReplaceAll.
Stringide poolitamine ja ühendamine
The stringid pakett sisaldab Lõhestatud, SplitAfter, SplitAfterN, ja SplitN funktsioonid stringide tükeldamiseks, mis tagastavad osa stringidest.
The Lõhestatud meetod jagab määratud eraldajaga. Sarnased Lõhestatud meetod, SplitAfter meetod poolitab stringi, kuid sisaldab tulemustes eraldajat.
importida (
"fmt"
"stringid"
)funcpeamine() {
s := "See on test, mis tuleb jagada."
fmt. Println (stringid. Split (s, " "))
fmt. Println (stringid. SplitAfter (s, " "))
fmt. Println (stringid. SplitAfterN(id, " ", 3))
fmt. Println (stringid. SplitN(s, " ", 3))
}
The SplitAfterN meetod on sarnane SplitAfter funktsioon, välja arvatud see, et funktsioon jagab stringi maksimaalselt määratud alamstringideks. The SplitN meetod jagab stringi määratud maksimaalse arvuni ilma eraldajat alamstringidesse lisamata.
Saate stringe ühendada Liitu funktsioonist stringid pakett. The Liitu funktsioon võtab sisse lõigu ja eraldaja.
importida (
"fmt"
"stringid"
)
funcpeamine() {
fmt. Println (stringid. Liitu ([]string{"Tere", "Maailm"}, ":"))
// Väljund: "Tere: maailm"
}
Stringi ümbrise manipuleerimine
Stringi suurtähtede manipuleerimine on mugav paljude ülesannete, sealhulgas dokumentatsiooniga töötamine. Võite kasutada Allapoole funktsioon väiketähtede jaoks ToUpper funktsioon suurtähtede jaoks ja ToTitle funktsioon pealkirja korpuse jaoks.
importida (
"fmt"
"stringid"
)funcpeamine() {
s := "See on proovistring."
fmt. Println (stringid. Alam (s) // see on teststring.
fmt. Println (stringid. Ülemine (ülemised) // SEE ON TESTAJÄRG.
fmt. Println (stringid. Pealkiri(d) // SEE ON TESTAJÄRG.
}
String Building Go
Stringi koostajad on tüüp, mis võimaldab Go-s tõhusat liitmist. The baiti. Puhver tüüp on üks sagedamini kasutatavaid stringide koostajaid. The baiti. Puhver meetod rakendab operatsioonide jaoks kasvavat baitidest koosnevat puhvrit lugemis- ja kirjutamismeetoditega, võimaldades tõhusaid stringide lisamist ilma uusi koopiaid tegemata, erinevalt + operatsioon ja Liitu funktsiooni.
importida (
"fmt"
"stringid"
)funcpeamine() {
var b stringid. Ehitaja// Kirjutage ehitajale mõned stringid
b. WriteString("see")
b. WriteString("on ")
b. WriteString("a")
b. WriteString("test")
b. WriteString("string".)// Hankige ehitaja pikkus
fmt. Println (s. Len())// Teisendage ehitaja stringiks
str := b. String()
fmt. Println (str)// Lähtestage ehitaja
b. Lähtesta()// Kirjuta ehitajale veel mõned stringid
b. WriteString("see")
b. WriteString("on ")
b. WriteString("teine")
b. WriteString("test")
b. WriteString("string".)// Hankige ehitaja suutlikkus
fmt. Println (s. Cap())
// Teisendage ehitaja uuesti stringiks
str = b. String()
fmt. Println (str)
}
The peamine funktsioon näitab, kuidas saate seda kasutada stringid. Ehitaja tüüp tõhusaks stringide ehitamiseks. The WriteString meetod Stringid. Ehitaja tüüp laiendab stringide jada üksteisele ja Len meetod tagastab ehitatud stringi pikkuse.
The String meetod teisendab koostaja sisu stringiks ja Lähtesta meetod lähtestab ehitaja täiendava stringi ehitamiseks.
The Kork meetod tagastab ehitaja võimsuse. See on praegune ruum, mille Go on stringile eraldanud.
Stringi kärpimine Go-s
The stringid pakett pakub ka funktsiooni stringide kärpimiseks Kärbi, TrimLeft, TrimPrefix, TrimRight, TrimSpace, ja TrimSufiks funktsioonid.
importida (
"stringid"
"fmt"
)funcpeamine() {
// täisstring
s := "Tere, Maailm!"// trimmi element
eesliide := "Tere"
järelliide := "Maailm!"// kärbib stringi määratud kärpimiskomplekti järgi
fmt. Println (stringid. Kärbi (s, "!"))// kärbib stringi alguses ja lõpus tühikutega
fmt. Println (stringid. TrimSpace (id)// kärbib vasakpoolsest stringist määratud kärpimiskomplekti järgi
fmt. Println (stringid. TrimLeft (s, "Tere"))// kärbib määratud kärpimiskomplekti järgi paremast stringist välja
fmt. Println (stringid. TrimRight (s, "Maailm!"))// kärbib eesliite välja
fmt. Println (stringid. TrimPrefix (s, eesliide))
// kärbib välja konkreetse järelliide
fmt. Println (stringid. TrimSufiks (s, järelliide))
}
The peamine funktsioon näitab, kuidas saate funktsioone kärpimiseks kasutada. Erinevad funktsioonid trimmivad s stringi mitmel viisil:
Saate Go-s stringe vormindada
Go standardteek pakub ka fmt-paketti stringi vormindamiseks. Pakett fmt kasutab Go tõhusaks stringivorminguks C-stiilis vormindamisverbe.