Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

Strengmanipulation er grundlæggende i softwareudvikling; de fleste programmeringssprog giver trods alt en strengtype. En streng er en sekvens af tegn: bogstaver, tal og symboler.

Strengmanipulation er praktisk til forskellige applikationer, fra tekstbehandling og dataanalyse til webudvikling. Populære strengmanipulationsoperationer er sammenkædning, datavalidering, udtrækning og formatering. Go giver en strengmanipulationspakke med navnet "strenge" i standardbiblioteket.

Strengepakken

Det strenge pakken indeholder forskellige nyttige funktioner til strengmanipulation og andre operationer. Pakken inkluderer funktionalitet til understrengsoperationer, trimning, sammenligning af strenge, strengkonvertering, strengbygning, opdeling og mere.

Du kan importere strenge-pakken ved at angive pakkenavnet på din liste over importer.

importere"strenge"

Søger efter understrenge

instagram viewer

Det strenge pakken indeholder tre funktioner til at søge efter understrenge: Indeholder funktion, den Indeholder enhver funktion, og Indeholder Rune fungere.

Det Indeholder funktion kontrollerer, om den angivne streng indeholder understrengen. Det Indeholder enhver funktion kontrollerer, om strengen indeholder tegn i understrengen, og Indeholder Rune funktion kontrollerer, om strengen indeholder en rune (et Unicode-tegn).

importere (
"fmt"
"strenge"
)

funcvigtigste() {
aString := "Hej Verden!"
understreng := "Verden"
tegn := "aeiou"
aRune := 'o'

fmt. Println (strenge. Indeholder (aString, substring)) // Output: sand
fmt. Println (strenge. Indeholder enhver (en streng, tegn)) // Output: sand
fmt. Println (strenge. IndeholderRune (aString, aRune)) // Output: sand
}

Du kan hente indekset for en understreng med Indeks, IndeksEthvert, IndexByte, og IndexFunc funktioner. Det Indeks funktion returnerer indekset for en understreng, hvis det forekommer i en anden given streng. Det IndeksEthvert funktion returnerer indekset for den første forekomst af et Unicode-kodepunkt eller -1 hvis ingen af ​​tegnene er til stede.

importere (
"fmt"
"strenge"
)

funcvigtigste() {
aString := "Hej Verden!"
understreng := "verden"
tegn := "wrld"
bytekarakter := byte('o')
aRune := rune('o')

fmt. Println (strenge. Indeks (aString, substring)) // Output: 7
fmt. Println (strenge. IndexAny (aString, chars)) // Output: 7
fmt. Println (strenge. IndexByte (aString, byteCharacter)) // Output: 4

f := func(r rune)bool {
Vend tilbage r == 'o'
}

fmt. Println (strenge. IndexFunc (aString, f)) // Output: 4
fmt. Println (strenge. IndexRune (aString, aRune)) // Output: 4
}

IndexByte returnerer indekset for den første forekomst af byte-tegnet i strengen eller -1. Det IndexFunc funktion returnerer indekset til strengen af ​​det første Unicode-punkt, der opfylder en given funktion. Endelig IndexRune funktion returnerer indekset for den første forekomst af Unicode-kodepunktet for runen.

Udskiftning af understrenge i Go

Det Erstatte og Erstat Alle funktionshjælp til udskiftning af understrenge. Det Erstatte funktionen tager strengen, den oprindelige understreng og erstatningen og flere erstatninger ind. Det Erstat Alle funktionen tager kun strengen, den indledende understreng og erstatningen ind.

importere (
"fmt"
"strenge"
)

funcvigtigste() {
strengen := "Dette er en teststreng, der skal ændres."
fmt. Println (strenge. Erstat (theString, "er", "var", 1))
fmt. Println (strenge. Erstat (theString, "er", "var", -1))
fmt. Println (strenge. ReplaceAll (theString, "er", "var"))
}

Bemærk, at du kan bruge både Replace og ReplaceAll til at erstatte enhver forekomst i strengen.

Opdeling og sammenføjning af strenge

Det strenge pakken indeholder Dele, SplitAfter, SplitAfterN, og SplitN funktioner til at opdele strenge, der returnerer et udsnit af strengene.

Det Dele metode opdeles med en specificeret afgrænsning. Svarende til Dele metode, den SplitAfter metoden opdeler strengen, men den inkluderer separatoren i sine resultater.

importere (
"fmt"
"strenge"
)

funcvigtigste() {
s := "Dette er en teststreng, der skal opdeles."

fmt. Println (strenge. Split (s, " "))
fmt. Println (strenge. SplitAfter (s, " "))
fmt. Println (strenge. SplitAfterN(s, " ", 3))
fmt. Println (strenge. SplitN(er, " ", 3))
}

Det SplitAfterN metoden ligner SplitAfter funktion bortset fra at funktionen opdeler strengen i et specificeret maksimum af understrenge. Det SplitN metoden opdeler strengen til et specificeret maksimalt antal uden at inkludere separatoren i understrengene.

Du kan forbinde strenge med Tilslutte funktion fra strenge pakke. Det Tilslutte funktionen tager et udsnit og en afgrænsning ind.

importere (
"fmt"
"strenge"
)

funcvigtigste() {
fmt. Println (strenge. Tilslutte([]snor{"Hej", "Verden"}, ":"))
// Output: "Hej: Verden"
}

Manipulerende strengetui

Manipulering af strengetui er praktisk til mange opgaver, bl.a arbejde med dokumentation. Du kan bruge At sænke funktion til små bogstaver, den Til Øvre funktion til store bogstaver, og ToTitle funktion til titlen casing.

importere (
"fmt"
"strenge"
)

funcvigtigste() {
s := "Dette er en teststreng."

fmt. Println (strenge. Nedre (r) // dette er en teststreng.
fmt. Println (strenge. Øvre (r) // DETTE ER EN TEST STRING.
fmt. Println (strenge. ToTitle (s) // DETTE ER EN TEST STRING.
}

String Building in Go

Stringbuildere er en type, der giver mulighed for effektiv sammenkædning i Go. Det bytes. Buffer type er en af ​​de almindeligt anvendte strengbyggere. Det bytes. Buffer metoden implementerer en voksende buffer af bytes med læse- og skrivemetoder til operationer, hvilket giver mulighed for effektive strengtilføjelser uden at skulle lave nye kopier, i modsætning til + drift og Tilslutte fungere.

importere (
"fmt"
"strenge"
)

funcvigtigste() {
var b strenge. Bygger

// Skriv nogle strenge til bygherren
b. WriteString("Det her ")
b. WriteString("er")
b. WriteString("en")
b. WriteString("test")
b. WriteString("snor.")

// Få bygherrens længde
fmt. Println (f. Len())

// Konverter builderen til en streng
str := b. Snor()
fmt. Println (str)

// Nulstil builderen
b. Nulstil()

// Skriv nogle flere strenge til bygherren
b. WriteString("Det her ")
b. WriteString("er")
b. WriteString("en anden ")
b. WriteString("test")
b. WriteString("snor.")

// Få bygherrens kapacitet
fmt. Println (f. Kasket())

// Konverter builderen til en streng igen
str = b. Snor()
fmt. Println (str)
}

Det vigtigste funktionen viser, hvordan du kan bruge strenge. Bygger type til effektiv strengbygning. Det WriteString metoden til Strenge. Bygger type udvider rækkefølgen af ​​strenge til hinanden, og Len metoden returnerer længden af ​​den byggede streng.

Det Snor metoden konverterer bygherrens indhold til en streng, og Nulstil metode nulstiller builderen for yderligere strengbygning.

Det Kasket metode returnerer bygherrens kapacitet. Dette er den aktuelle plads, som Go har allokeret til strengen.

String trimning in Go

Det strenge pakken giver også funktionalitet til trimning af strenge i Trimme, TrimLeft, TrimPrefix, TrimRight, TrimSpace, og TrimSuffix funktioner.

importere (
"strenge"
"fmt"
)

funcvigtigste() {
// hele strengen
s := "Hej Verden!"

// elementet til trim
præfiks := "Hej"
suffiks := "Verden!"

// trimmer en streng efter specificeret trimsæt
fmt. Println (strenge. Trim (s, "!"))

// trimmes ud med mellemrum i begyndelsen og slutningen af ​​strengen
fmt. Println (strenge. TrimSpace(r)

// trimmer fra venstre streng ved specificeret trimsæt
fmt. Println (strenge. TrimLeft (s, "Hej"))

// trimmer ud fra højre streng ved specificeret trimsæt
fmt. Println (strenge. TrimRight (s, "Verden!"))

// trimmer et præfiks ud
fmt. Println (strenge. TrimPrefix (s, præfiks))

// trimmer et specifikt suffiks ud
fmt. Println (strenge. TrimSuffix (s, suffiks))
}

Det vigtigste funktion viser, hvordan du kan bruge funktionerne til trimning. De forskellige funktioner trimmer s streng på forskellige måder:

Du kan formatere strenge i Go

Go-standardbiblioteket leverer også fmt-pakken til strengformatering. fmt-pakken bruger C-stil formateringsverber til effektiv strengformatering i Go.