Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Merkkijonojen manipulointi on olennaista ohjelmistokehityksessä; useimmat ohjelmointikielet tarjoavat loppujen lopuksi merkkijonotyypin. Merkkijono on merkkijono: kirjaimia, numeroita ja symboleja.

Merkkijonojen manipulointi on kätevää erilaisissa sovelluksissa tekstinkäsittelystä ja data-analyysistä verkkokehitykseen. Suosittuja merkkijonojen käsittelytoimintoja ovat ketjuttaminen, tietojen validointi, purkaminen ja muotoilu. Go tarjoaa merkkijonojen käsittelypaketin, jonka nimi on "strings" vakiokirjastossa.

Jouset paketti

The jouset paketti tarjoaa useita hyödyllisiä toimintoja merkkijonojen käsittelyyn ja muihin toimintoihin. Paketti sisältää toimintoja osamerkkijonotoimintoihin, trimmaukseen, merkkijonojen vertailuun, merkkijonojen muuntamiseen, merkkijonojen rakentamiseen, jakamiseen ja muihin.

Voit tuoda merkkijonopaketin määrittämällä paketin nimen tuontiluettelossasi.

instagram viewer
tuonti"jouset"

Etsitään alimerkkijonoja

The jouset paketti sisältää kolme toimintoa osamerkkijonojen etsimiseen: Sisältää toiminto, Sisältää mitä tahansa toiminto ja SisältääRunen toiminto.

The Sisältää funktio tarkistaa, sisältääkö määritetty merkkijono alimerkkijonoa. The Sisältää mitä tahansa toiminto tarkistaa, sisältääkö merkkijono merkkejä alimerkkijonossa, ja SisältääRunen toiminto tarkistaa, sisältääkö merkkijono riimu (Unicode-merkki).

tuonti (
"fmt"
"jouset"
)

funcpää() {
aString := "Hei maailma!"
osamerkkijono := "Maailman"
hahmot := "aeiou"
aRune := 'o'

fmt. Println (jonot. Sisältää (aString, osamerkkijono)) // Tulos: tosi
fmt. Println (jonot. Sisältää minkä tahansa (merkkijono, merkit)) // Tulos: tosi
fmt. Println (jonot. SisältääRune (aString, aRune)) // Tulos: tosi
}

Voit noutaa alimerkkijonon indeksin Indeksi, IndexAny, IndexByte, ja IndexFunc toimintoja. The Indeksi funktio palauttaa alimerkkijonon indeksin, jos se esiintyy toisessa annetussa merkkijonossa. The IndexAny funktio palauttaa ensimmäisen esiintymän indeksin Unicode-koodipiste tai -1 jos yksikään hahmoista ei ole paikalla.

tuonti (
"fmt"
"jouset"
)

funcpää() {
aString := "Hei maailma!"
osamerkkijono := "maailman"
merkkiä := "maailma"
byteCharacter := tavu('o')
aRune := riimu('o')

fmt. Println (jonot. Hakemisto (aString, osamerkkijono)) // Tulos: 7
fmt. Println (jonot. IndexAny (merkkijono, merkit)) // Tulos: 7
fmt. Println (jonot. IndexByte (aString, byteCharacter)) // Tulos: 4

f := func(r riimu)bool {
palata r == 'o'
}

fmt. Println (jonot. IndexFunc (aString, f)) // Tulos: 4
fmt. Println (jonot. IndexRune (aString, aRune)) // Tulos: 4
}

IndexByte palauttaa merkkijonon tai tavumerkin ensimmäisen esiintymän indeksin -1. The IndexFunc funktio palauttaa indeksin ensimmäisen Unicode-pisteen merkkijonoon, joka täyttää tietyn funktion. Lopuksi, IndexRune funktio palauttaa runon Unicode-koodipisteen ensimmäisen esiintymän indeksin.

Alimerkkijonojen korvaaminen Gossa

The Korvata ja Korvaa kaikki toiminto auttaa alimerkkijonojen korvaamisessa. The Korvata funktio ottaa merkkijonon, alkuperäisen alimerkkijonon sekä korvauksen ja useita korvauksia. The Korvaa kaikki funktio ottaa vain merkkijonon, alkuperäisen osamerkkijonon ja korvauksen.

tuonti (
"fmt"
"jouset"
)

funcpää() {
merkkijono := "Tämä on muokattava testijono."
fmt. Println (jonot. Korvaa (String, "On", "oli", 1))
fmt. Println (jonot. Korvaa (String, "On", "oli", -1))
fmt. Println (jonot. Korvaa kaikki (merkkijono, "On", "oli"))
}

Huomaa, että voit käyttää sekä Replace- että ReplaceAll-komentoa korvataksesi jokaisen merkkijonon esiintymän.

Merkkien jakaminen ja yhdistäminen

The jouset paketti sisältää Jakaa, SplitAfter, SplitAfterN, ja SplitN funktioita merkkijonojen jakamiseen, jotka palauttavat osan merkkijonoista.

The Jakaa menetelmä jakaa tietyllä erottimella. Samanlainen kuin Jakaa menetelmä, SplitAfter menetelmä jakaa merkkijonon, mutta se sisältää erottimen tuloksissaan.

tuonti (
"fmt"
"jouset"
)

funcpää() {
s := "Tämä on testijono, joka on jaettava."

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

The SplitAfterN menetelmä on samanlainen kuin SplitAfter funktio, paitsi että funktio jakaa merkkijonon määrätyksi enimmäismääräksi alimerkkijonoja. The SplitN menetelmä jakaa merkkijonon tiettyyn enimmäismäärään sisällyttämättä erotinta osamerkkijonoihin.

Voit yhdistää merkkijonoja Liittyä seuraan toiminto alkaen jouset paketti. The Liittyä seuraan funktio ottaa viipaleen ja erottimen.

tuonti (
"fmt"
"jouset"
)

funcpää() {
fmt. Println (jonot. Liittyä seuraan([]merkkijono{"Hei", "Maailman"}, ":"))
// Tulos: "Hei: Maailma"
}

Manipulating String Case

Merkkijonojen käsitteleminen on kätevää moniin tehtäviin, mukaan lukien työskennellä dokumenttien kanssa. Voit käyttää Laskea toiminto pienille kirjaimille, ToUpper isojen kirjainten toiminto ja ToTitle toiminto otsikon kirjaimille.

tuonti (
"fmt"
"jouset"
)

funcpää() {
s := "Tämä on testijono."

fmt. Println (jonot. Ala (s) // tämä on testijono.
fmt. Println (jonot. Yläosa (s) // TÄMÄ ON TESTIKÄYNTI.
fmt. Println (jonot. Otsikko(t) // TÄMÄ ON TESTIKÄYNTI.
}

String Building Goissa

Merkkijonojen rakentajat ovat tyyppi, joka mahdollistaa tehokkaan ketjutuksen Gossa. The tavua. Puskuri Type on yksi yleisesti käytetyistä merkkijonojen rakentajista. The tavua. Puskuri menetelmä toteuttaa kasvavan tavupuskurin luku- ja kirjoitusmenetelmillä operaatioita varten, mikä mahdollistaa tehokkaan merkkijonon liittämisen ilman tarvetta tehdä uusia kopioita, toisin kuin + toiminta ja Liittyä seuraan toiminto.

tuonti (
"fmt"
"jouset"
)

funcpää() {
var b kielet. Rakentaja

// Kirjoita joitain merkkijonoja rakentajalle
b. WriteString("Tämä ")
b. WriteString("On ")
b. WriteString("a")
b. WriteString("testi")
b. WriteString("merkkijono".)

// Hanki rakentajan pituus
fmt. Println (s. Len())

// Muunna rakennustyökalu merkkijonoksi
str := b. merkkijono()
fmt. Println (str)

// Nollaa rakentaja
b. Reset()

// Kirjoita lisää merkkijonoja rakentajalle
b. WriteString("Tämä ")
b. WriteString("On ")
b. WriteString("toinen")
b. WriteString("testi")
b. WriteString("merkkijono".)

// Hanki rakentajan kapasiteetti
fmt. Println (s. Korkki())

// Muunna rakennustyökalu uudelleen merkkijonoksi
str = b. merkkijono()
fmt. Println (str)
}

The pää toiminto näyttää, kuinka voit käyttää jouset. Rakentaja tyyppi tehokkaaseen merkkijonojen rakentamiseen. The WriteString menetelmä jouset. Rakentaja type laajentaa merkkijonojen sarjaa toisiinsa, ja Len Metodi palauttaa rakennetun merkkijonon pituuden.

The merkkijono -menetelmä muuntaa rakentajan sisällön merkkijonoksi ja Nollaa menetelmä nollaa rakentajan lisämerkkijonojen rakentamiseen.

The Korkki menetelmä palauttaa rakentajan kapasiteetin. Tämä on nykyinen tila, jonka Go on varannut merkkijonolle.

String Trimming Goissa

The jouset paketti tarjoaa myös toiminnot merkkijonojen leikkaamiseen Trimmata, TrimLeft, TrimPrefix, TrimRight, TrimSpace, ja TrimSuffix toimintoja.

tuonti (
"jouset"
"fmt"
)

funcpää() {
// koko merkkijono
s := "Hei maailma!"

// trimmauksen elementti
etuliite := "Hei"
pääte := "Maailman!"

// leikkaa merkkijonon määritetyn leikkausjoukon mukaan
fmt. Println (jonot. Trim (s, "!"))

// leikkaa pois välilyönnillä merkkijonon alussa ja lopussa
fmt. Println (jonot. TrimSpace (s)

// leikkaa vasemmasta merkkijonosta määritetyn trimmausjoukon mukaan
fmt. Println (jonot. TrimLeft (s, "Hei"))

// leikkaa pois oikeasta merkkijonosta määritetyllä trimmausjoukolla
fmt. Println (jonot. TrimRight (s, "Maailman!"))

// leikkaa pois etuliitteen
fmt. Println (jonot. TrimPrefix (s, etuliite))

// leikkaa pois tietyn jälkiliitteen
fmt. Println (jonot. TrimSuffix (s, pääte))
}

The pää toiminto näyttää, kuinka voit käyttää toimintoja trimmaamiseen. Eri toiminnot leikkaavat s merkkijono eri tavoilla:

Voit muotoilla merkkijonoja Gossa

Go-standardikirjasto tarjoaa myös fmt-paketin merkkijonojen muotoilua varten. Fmt-paketti käyttää C-tyylisiä muotoiluverbejä tehokkaaseen merkkijonojen muotoiluun Gossa.