Stringmanipulatie is fundamenteel bij softwareontwikkeling; de meeste programmeertalen bieden immers een stringtype. Een string is een reeks tekens: letters, cijfers en symbolen.
Stringmanipulatie is handig voor verschillende toepassingen, van tekstverwerking en data-analyse tot webontwikkeling. Populaire bewerkingen voor het manipuleren van tekenreeksen zijn aaneenschakeling, gegevensvalidatie, extractie en opmaak. Go biedt een stringmanipulatiepakket met de naam "strings" in de standaardbibliotheek.
Het snarenpakket
De snaren pakket biedt verschillende handige functies voor het manipuleren van tekenreeksen en andere bewerkingen. Het pakket bevat functionaliteit voor bewerkingen van substrings, trimmen, strings vergelijken, stringconversie, stringopbouw, splitsen en meer.
U kunt het tekenreeksenpakket importeren door de pakketnaam op te geven in uw importlijst.
importeren"snaren"
Subtekenreeksen zoeken
De snaren pakket biedt drie functies voor het zoeken naar subtekenreeksen: de Bevat functie, de BevatAny functie, en de BevatRune functie.
De Bevat functie controleert of de opgegeven tekenreeks de subtekenreeks bevat. De BevatAny functie controleert of de tekenreeks tekens bevat in de subtekenreeks, en de BevatRune functie controleert of de tekenreeks een rune bevat (een Unicode-teken).
importeren (
"fmt"
"snaren"
)funcvoornaamst() {
eenString := "Hallo Wereld!"
deeltekenreeks := "Wereld"
karakters := "aeiou"
aRune := 'O'
fmt. Println (tekenreeksen. Bevat (aString, substring)) // Uitvoer: waar
fmt. Println (tekenreeksen. BevatAny (aString, karakters)) // Uitvoer: waar
fmt. Println (tekenreeksen. BevatRune (aString, aRune)) // Uitvoer: waar
}
U kunt de index van een subtekenreeks ophalen met de Inhoudsopgave, IndexAny, IndexByte, En IndexFunc functies. De Inhoudsopgave functie retourneert de index van een subtekenreeks, als deze voorkomt in een andere gegeven tekenreeks. De IndexAny functie retourneert de index van het eerste exemplaar van een Unicode-codepunt of -1 als geen van de tekens aanwezig is.
importeren (
"fmt"
"snaren"
)funcvoornaamst() {
eenString := "Hallo Wereld!"
deeltekenreeks := "wereld"
karakters := "wrld"
byteKarakter := byte('O')
aRune := rune('O')fmt. Println (tekenreeksen. Index (aString, substring)) // Uitvoer: 7
fmt. Println (tekenreeksen. IndexAny (aString, tekens)) // Uitvoer: 7
fmt. Println (tekenreeksen. IndexByte (aString, byteCharacter)) // Uitvoer: 4
v := func(R rune)boel {
opbrengst r== 'O'
}
fmt. Println (tekenreeksen. IndexFunc (aString, f)) // Uitvoer: 4
fmt. Println (tekenreeksen. IndexRune (aString, aRune)) // Uitvoer: 4
}
IndexByte geeft de index terug van de eerste instantie van het byteteken in de tekenreeks or -1. De IndexFunc functie retourneert de index in de tekenreeks van het eerste Unicode-punt dat voldoet aan een bepaalde functie. eindelijk, de IndexRune functie retourneert de index van de eerste instantie van het Unicode-codepunt van de rune.
Substrings vervangen in Go
De Vervangen En Vervang alles functie hulp bij het vervangen van substrings. De Vervangen functie neemt de tekenreeks, de originele subtekenreeks en de vervanging en verschillende vervangingen op. De Vervang alles functie neemt alleen de tekenreeks, de initiële subtekenreeks en de vervanging op.
importeren (
"fmt"
"snaren"
)
funcvoornaamst() {
deString := "Dit is een testreeks die moet worden gewijzigd."
fmt. Println (tekenreeksen. Vervang (deString, "is", "was", 1))
fmt. Println (tekenreeksen. Vervang (deString, "is", "was", -1))
fmt. Println (tekenreeksen. VervangAlles (deString, "is", "was"))
}
Merk op dat u zowel Replace als ReplaceAll kunt gebruiken om elke instantie binnen de tekenreeks te vervangen.
Snaren splitsen en samenvoegen
De snaren pakket bevat de Splitsen, SplitAfter, SplitAfterN, En SplitN functies voor het splitsen van tekenreeksen die een deel van de tekenreeksen retourneren.
De Splitsen methode wordt gesplitst door een opgegeven scheidingsteken. Vergelijkbaar met de Splitsen methode, de SplitAfter methode splitst de tekenreeks, maar neemt het scheidingsteken op in de resultaten.
importeren (
"fmt"
"snaren"
)funcvoornaamst() {
s := "Dit is een testreeks die moet worden gesplitst."
fmt. Println (tekenreeksen. Splitsen (s, " "))
fmt. Println (tekenreeksen. SplitAfter (s, " "))
fmt. Println (tekenreeksen. SplitAfterN(s, " ", 3))
fmt. Println (tekenreeksen. SplitN(s, " ", 3))
}
De SplitAfterN methode is vergelijkbaar met de SplitAfter functie, behalve dat de functie de tekenreeks splitst in een opgegeven maximum aantal subtekenreeksen. De SplitN methode splitst de tekenreeks tot een opgegeven maximum aantal zonder het scheidingsteken in de subtekenreeksen op te nemen.
Je kunt strings samenvoegen met de Meedoen functie uit de snaren pakket. De Meedoen functie neemt een segment en een scheidingsteken op.
importeren (
"fmt"
"snaren"
)
funcvoornaamst() {
fmt. Println (tekenreeksen. Meedoen([]snaar{"Hallo", "Wereld"}, ":"))
// Uitvoer: "Hallo: Wereld"
}
String Case manipuleren
Het manipuleren van hoofdletters en kleine letters is handig voor veel taken, waaronder werken met documentatie. U kunt de Verlagen functie voor kleine letters, de NaarBoven functie voor hoofdletters, en de NaarTitel functie voor titelbehuizing.
importeren (
"fmt"
"snaren"
)funcvoornaamst() {
s := "Dit is een testreeks."
fmt. Println (tekenreeksen. Om te verlagen (s)) // dit is een teststring.
fmt. Println (tekenreeksen. NaarBoven(s)) // DIT IS EEN TESTSTRING.
fmt. Println (tekenreeksen. NaarTitel(s)) // DIT IS EEN TESTSTRING.
}
String Building in Go
Stringbuilders zijn een type dat een efficiënte aaneenschakeling in Go mogelijk maakt. De bytes. Buffer type is een van de meest gebruikte tekenreeksbouwers. De bytes. Buffer methode implementeert een groeiende buffer van bytes met lees- en schrijfmethoden voor bewerkingen, waardoor efficiënte tekenreekstoevoegingen mogelijk zijn zonder nieuwe kopieën te hoeven maken, in tegenstelling tot de + werking en de Meedoen functie.
importeren (
"fmt"
"snaren"
)funcvoornaamst() {
var b snaren. Bouwer// Schrijf enkele strings naar de bouwer
B. SchrijfString("Dit ")
B. SchrijfString("is ")
B. SchrijfString("A ")
B. SchrijfString("test ")
B. SchrijfString("snaar.")// Haal de lengte van de bouwer op
fmt. Println (geb. Len())// Converteer de bouwer naar een string
str := geb. Snaar()
fmt. Println (str)// Stel de bouwer opnieuw in
B. Opnieuw instellen()// Schrijf nog wat strings naar de bouwer
B. SchrijfString("Dit ")
B. SchrijfString("is ")
B. SchrijfString("een andere ")
B. SchrijfString("test ")
B. SchrijfString("snaar.")// Verkrijg de capaciteit van de bouwer
fmt. Println (geb. pet())
// Converteer de bouwer opnieuw naar een string
str = geb. Snaar()
fmt. Println (str)
}
De voornaamst functie laat zien hoe u de snaren. Bouwer type voor het efficiënt bouwen van strings. De SchrijfString methode van de Snaren. Bouwer type breidt de reeks strings naar elkaar uit, en de Len methode retourneert de lengte van de gebouwde string.
De Snaar methode converteert de inhoud van de bouwer naar een tekenreeks, en de Resetten methode reset de bouwer voor het bouwen van extra tekenreeksen.
De Kap methode retourneert de capaciteit van de bouwer. Dit is de huidige ruimte die Go heeft toegewezen aan de tekenreeks.
String trimmen in Go
De snaren pakket biedt ook functionaliteit voor het trimmen van tekenreeksen in het Trimmen, TrimLinks, TrimPrefix, TrimRight, TrimSpace, En TrimSuffix functies.
importeren (
"snaren"
"fmt"
)funcvoornaamst() {
// de volledige reeks
s := "Hallo Wereld!"// het element voor de trim
voorvoegsel := "Hallo"
achtervoegsel := "Wereld!"// snijdt een string af volgens de gespecificeerde trimset
fmt. Println (tekenreeksen. Trimmen (s, "!"))// snijdt weg met spaties aan het begin en einde van de tekenreeks
fmt. Println (tekenreeksen. TrimSpace(s))// knipt vanaf de linker string af met de gespecificeerde trimset
fmt. Println (tekenreeksen. TrimLinks (s, "Hallo"))// trimt uit de juiste string door gespecificeerde trimset
fmt. Println (tekenreeksen. TrimRight (s, "Wereld!"))// snijdt een voorvoegsel weg
fmt. Println (tekenreeksen. TrimPrefix (s, voorvoegsel))
// verwijdert een specifiek achtervoegsel
fmt. Println (tekenreeksen. TrimSuffix (s, achtervoegsel))
}
De voornaamst functie laat zien hoe u de functies voor trimmen kunt gebruiken. De verschillende functies trimmen de S tekenreeks op verschillende manieren:
U kunt tekenreeksen opmaken in Go
De Go-standaardbibliotheek biedt ook het fmt-pakket voor tekenreeksopmaak. Het fmt-pakket gebruikt opmaakwerkwoorden in C-stijl voor efficiënte tekenreeksopmaak in Go.