Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Manipulacija nizovima temeljna je u razvoju softvera; većina programskih jezika ipak nudi string tip. Niz je niz znakova: slova, brojeva i simbola.

Manipulacija nizovima je korisna za razne aplikacije, od obrade teksta i analize podataka do web razvoja. Popularne operacije manipulacije nizovima su ulančavanje, provjera valjanosti podataka, izdvajanje i oblikovanje. Go pruža paket za manipulaciju nizovima pod nazivom "nizovi" u standardnoj biblioteci.

Paket žica

The žice paket pruža razne korisne funkcije za manipulaciju nizovima i druge operacije. Paket uključuje funkcionalnost za operacije s podnizovima, skraćivanje, usporedbu nizova, pretvorbu nizova, izgradnju nizova, razdvajanje i još mnogo toga.

Možete uvesti paket nizova tako da navedete naziv paketa na popisu uvoza.

uvoz"žice"

Traženje podnizova

The žice paket nudi tri funkcije za traženje podnizova: Sadrži funkcija, Sadrži bilo što funkcija, i Sadrži Rune funkcija.

instagram viewer

The Sadrži funkcija provjerava sadrži li navedeni niz podniz. The Sadrži bilo što funkcija provjerava sadrži li niz neke znakove u podnizu i Sadrži Rune funkcija provjerava sadrži li niz runu (Unicode znak).

uvoz (
"fmt"
"žice"
)

funkglavni() {
aString := "Pozdrav svijete!"
podniz := "Svijet"
likovi := "aeiou"
aRune := 'o'

fmt. Println (nizovi. Sadrži (niz, podniz)) // Izlaz: istina
fmt. Println (nizovi. ContainsAny (aString, znakovi)) // Izlaz: istina
fmt. Println (nizovi. Sadrži Runu (String, aRune)) // Izlaz: istina
}

Možete dohvatiti indeks podniza pomoću Indeks, IndexAny, IndexByte, i IndexFunc funkcije. The Indeks funkcija vraća indeks podniza, ako se pojavljuje u drugom zadanom nizu. The IndexAny funkcija vraća indeks prve instance od kodnu točku Unicode ili -1 ako niti jedan od likova nije prisutan.

uvoz (
"fmt"
"žice"
)

funkglavni() {
aString := "Pozdrav svijete!"
podniz := "svijet"
znakovi := "svijet"
bajtZnak := bajt('o')
aRune := runa('o')

fmt. Println (nizovi. Indeks (niz, podniz)) // Izlaz: 7
fmt. Println (nizovi. IndexAny (niz, znakovi)) // Izlaz: 7
fmt. Println (nizovi. IndexByte (aString, byteCharacter)) // Izlaz: 4

f := funk(r runa)bool {
povratak r == 'o'
}

fmt. Println (nizovi. IndexFunc (aString, f)) // Izlaz: 4
fmt. Println (nizovi. IndexRune (aString, aRune)) // Izlaz: 4
}

IndexByte vraća indeks prve instance bajt znaka u nizu ili -1. The IndexFunc funkcija vraća indeks u nizu prve Unicode točke koja zadovoljava zadanu funkciju. Konačno, IndexRune funkcija vraća indeks prve instance Unicode kodne točke rune.

Zamjena podnizova u Go

The Zamijeniti i Zamjeni sve pomoć funkcije kod zamjene podnizova. The Zamijeniti funkcija uzima niz, izvorni podniz, zamjenu i nekoliko zamjena. The Zamjeni sve funkcija uzima samo niz, početni podniz i zamjenu.

uvoz (
"fmt"
"žice"
)

funkglavni() {
theString := "Ovo je testni niz koji treba modificirati."
fmt. Println (nizovi. Zamijeni (niz, "je", "bio", 1))
fmt. Println (nizovi. Zamijeni (niz, "je", "bio", -1))
fmt. Println (nizovi. Zamijeni sve (niz, "je", "bio"))
}

Primijetite da možete koristiti i Replace i ReplaceAll za zamjenu svakog pojavljivanja unutar niza.

Razdvajanje i spajanje nizova

The žice paket sadrži Podjela, SplitAfter, SplitAfterN, i SplitN funkcije za dijeljenje nizova koje vraćaju dio nizova.

The Podjela metoda se dijeli prema određenom graničniku. Slično kao i Podjela metoda, SplitAfter metoda dijeli niz, ali uključuje separator u svoje rezultate.

uvoz (
"fmt"
"žice"
)

funkglavni() {
s := "Ovo je testni niz koji treba podijeliti."

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

The SplitAfterN metoda je slična SplitAfter osim što funkcija dijeli niz na određeni maksimum podnizova. The SplitN metoda dijeli niz na određeni maksimalni broj bez uključivanja separatora u podnizove.

Možete spojiti žice s Pridružiti funkcija iz žice paket. The Pridružiti funkcija uzima odsječak i graničnik.

uvoz (
"fmt"
"žice"
)

funkglavni() {
fmt. Println (nizovi. Pridružiti([]niz{"Zdravo", "Svijet"}, ":"))
// Izlaz: "Hello: World"
}

Manipuliranje malim i malim slovima

Manipuliranje velikim i velikim slovima znakova zgodno je za mnoge zadatke, uključujući rad s dokumentacijom. Možete koristiti Spustiti funkcija za mala slova, the ToUpper funkcija za velika slova i ToTitle funkcija za velika i mala slova naslova.

uvoz (
"fmt"
"žice"
)

funkglavni() {
s := "Ovo je testni niz."

fmt. Println (nizovi. Spustiti (s)) // ovo je testni niz.
fmt. Println (nizovi. prema gore (s) // OVO JE TESTNI NIZ.
fmt. Println (nizovi. Na naslov(e) // OVO JE TESTNI NIZ.
}

Izgradnja niza u Go

Graditelji nizova vrsta su koja omogućuje učinkovito ulančavanje u Go. The bajtova. Pufer type je jedan od često korištenih graditelja nizova. The bajtova. Pufer metoda implementira rastući međuspremnik bajtova s ​​metodama čitanja i pisanja za operacije, omogućujući učinkovito dodavanje niza bez potrebe za izradom novih kopija, za razliku od + operacija i Pridružiti funkcija.

uvoz (
"fmt"
"žice"
)

funkglavni() {
var b žice. Graditelj

// Napišite neke nizove graditelju
b. WriteString("ovo")
b. WriteString("je")
b. WriteString("a")
b. WriteString("test")
b. WriteString("niz.")

// Dobivanje duljine graditelja
fmt. Println (b. Len())

// Pretvori graditelja u niz
str := b. Niz()
fmt. Println (str)

// Reset graditelja
b. Reset()

// Napišite još neke nizove graditelju
b. WriteString("ovo")
b. WriteString("je")
b. WriteString("drugi")
b. WriteString("test")
b. WriteString("niz.")

// Dobiti sposobnost graditelja
fmt. Println (b. kapa())

// Ponovno pretvaranje graditelja u niz
str = b. Niz()
fmt. Println (str)
}

The glavni funkcija pokazuje kako možete koristiti žice. Graditelj tipa za učinkovitu izgradnju nizova. The WriteString metoda Žice. Graditelj tip proširuje niz nizova jedan na drugi, a Len metoda vraća duljinu izgrađenog niza.

The Niz metoda pretvara sadržaj graditelja u niz, a Resetiraj metoda resetira graditelja za dodatnu izgradnju niza.

The kapa metoda vraća kapacitet graditelja. Ovo je trenutni prostor koji je Go dodijelio nizu.

Podrezivanje žica u Go

The žice paket također pruža funkcionalnost za podrezivanje žica u Trim, TrimLeft, TrimPrefix, TrimRight, TrimSpace, i TrimSufiks funkcije.

uvoz (
"žice"
"fmt"
)

funkglavni() {
// cijeli niz
s := "Pozdrav svijete!"

// element za obrezivanje
prefiks := "Zdravo"
sufiks := "Svijet!"

// skraćuje niz određenim skupom skraćivanja
fmt. Println (nizovi. Obrezivanje (s, "!"))

// skraćuje za razmake na početku i kraju niza
fmt. Println (nizovi. TrimSpace (s)

// skraćuje s lijevog niza navedenim skupom skraćivanja
fmt. Println (nizovi. TrimLeft (s, "Zdravo"))

// izrezuje se iz desnog niza prema specificiranom skupu skraćivanja
fmt. Println (nizovi. TrimRight (s, "Svijet!"))

// izrezuje prefiks
fmt. Println (nizovi. TrimPrefix (s, prefiks))

// izrezuje određeni sufiks
fmt. Println (nizovi. TrimSufiks (s, sufiks))
}

The glavni pokazuje kako možete koristiti funkcije za podrezivanje. Različite funkcije dotjeruju s nizati na razne načine:

Možete formatirati nizove u Go-u

Go standardna biblioteka također nudi fmt paket za formatiranje niza. Paket fmt koristi glagole oblikovanja u stilu C za učinkovito oblikovanje niza u Gou.