I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

La manipolazione delle stringhe è fondamentale nello sviluppo del software; la maggior parte dei linguaggi di programmazione fornisce un tipo di stringa, dopo tutto. Una stringa è una sequenza di caratteri: lettere, numeri e simboli.

La manipolazione delle stringhe è utile per varie applicazioni, dall'elaborazione del testo e dall'analisi dei dati allo sviluppo web. Le operazioni più comuni di manipolazione delle stringhe sono la concatenazione, la convalida dei dati, l'estrazione e la formattazione. Go fornisce un pacchetto di manipolazione delle stringhe denominato "strings" nella libreria standard.

Il pacchetto di stringhe

IL stringhe Il pacchetto fornisce varie funzioni utili per la manipolazione delle stringhe e altre operazioni. Il pacchetto include funzionalità per operazioni di sottostringa, taglio, confronto di stringhe, conversione di stringhe, creazione di stringhe, suddivisione e altro.

instagram viewer

Puoi importare il pacchetto di stringhe specificando il nome del pacchetto nell'elenco delle importazioni.

importare"stringhe"

Ricerca di sottostringhe

IL stringhe Il pacchetto fornisce tre funzioni per la ricerca di sottostringhe: il Contiene funzione, il ContieneQualsiasi funzione, e il ContieneRuna funzione.

IL Contiene La funzione controlla se la stringa specificata contiene la sottostringa. IL ContieneQualsiasi La funzione controlla se la stringa contiene caratteri nella sottostringa e il ContieneRuna La funzione controlla se la stringa contiene una runa (un carattere Unicode).

importare (
"fmt"
"stringhe"
)

funzprincipale() {
aStringa := "Ciao mondo!"
sottostringa := "Mondo"
caratteri := "aiou"
aRune := 'o'

fmt. Println (stringhe. Contiene (aStringa, sottostringa)) // Uscita: vero
fmt. Println (stringhe. ContieneQualsiasi (aStringa, caratteri)) // Uscita: vero
fmt. Println (stringhe. ContieneRuna (aStringa, aRuna)) // Uscita: vero
}

È possibile recuperare l'indice di una sottostringa con il Indice, IndiceQualsiasi, IndiceByte, E IndexFunc funzioni. IL Indice La funzione restituisce l'indice di una sottostringa, se si verifica in un'altra stringa data. IL IndiceQualsiasi La funzione restituisce l'indice della prima istanza di un punto di codice Unicode O -1 se nessuno dei caratteri è presente.

importare (
"fmt"
"stringhe"
)

funzprincipale() {
aStringa := "Ciao mondo!"
sottostringa := "mondo"
caratteri := "mondo"
byteCarattere := byte('o')
aRune := runa('o')

fmt. Println (stringhe. Indice (aStringa, sottostringa)) // Uscita: 7
fmt. Println (stringhe. IndexAny (aString, caratteri)) // Uscita: 7
fmt. Println (stringhe. IndexByte (aString, byteCharacter)) // Uscita: 4

f := funz(R runa)bool {
ritorno R == 'o'
}

fmt. Println (stringhe. IndexFunc (aString, f)) // Uscita: 4
fmt. Println (stringhe. IndexRune (aStringa, aRune)) // Uscita: 4
}

IndiceByte restituisce l'indice della prima istanza del carattere byte nella stringa o -1. IL IndexFunc La funzione restituisce l'indice nella stringa del primo punto Unicode che soddisfa una data funzione. Infine il IndexRune La funzione restituisce l'indice della prima istanza del punto di codice Unicode della runa.

Sostituzione delle sottostringhe in Go

IL Sostituire E Sostituisci tutto funzione di aiuto con la sostituzione di sottostringhe. IL Sostituire La funzione accetta la stringa, la sottostringa originale e la sostituzione e diverse sostituzioni. IL Sostituisci tutto La funzione accetta solo la stringa, la sottostringa iniziale e la sostituzione.

importare (
"fmt"
"stringhe"
)

funzprincipale() {
laStringa := "Questa è una stringa di prova da modificare."
fmt. Println (stringhe. Sostituisci (laStringa, "È", "era", 1))
fmt. Println (stringhe. Sostituisci (laStringa, "È", "era", -1))
fmt. Println (stringhe. Sostituisci tutto (la stringa, "È", "era"))
}

Si noti che è possibile utilizzare sia Replace che ReplaceAll per sostituire ogni occorrenza all'interno della stringa.

Dividere e unire stringhe

IL stringhe la confezione contiene il Diviso, SplitDopo, DividiDopoN, E SpalatoN funzioni per dividere stringhe che restituiscono una porzione delle stringhe.

IL Diviso Il metodo divide in base a un delimitatore specificato. Simile al Diviso metodo, il SplitDopo Il metodo divide la stringa, ma include il separatore nei suoi risultati.

importare (
"fmt"
"stringhe"
)

funzprincipale() {
s:= "Questa è una stringa di prova da dividere."

fmt. Println (stringhe. Divide, " "))
fmt. Println (stringhe. DividiDopo (s, " "))
fmt. Println (stringhe. SplitAfterN(s, " ", 3))
fmt. Println (stringhe. SplitN(s, " ", 3))
}

IL SplitDopoN il metodo è simile al SplitDopo funzione tranne per il fatto che la funzione suddivide la stringa in un massimo specificato di sottostringhe. IL SpalatoN Il metodo suddivide la stringa in un numero massimo specificato senza includere il separatore nelle sottostringhe.

Puoi unire le stringhe con il Giuntura funzione dal stringhe pacchetto. IL Giuntura la funzione accetta una fetta e un delimitatore.

importare (
"fmt"
"stringhe"
)

funzprincipale() {
fmt. Println (stringhe. Giuntura([]corda{"Ciao", "Mondo"}, ":"))
// Output: "Ciao: mondo"
}

Manipolare il caso delle stringhe

La manipolazione della custodia delle stringhe è utile per molte attività, tra cui lavorando con la documentazione. Puoi usare il Ridurre funzione per lettere minuscole, the ToUpper funzione per maiuscole, e il ATitolo funzione per l'intelaiatura del titolo.

importare (
"fmt"
"stringhe"
)

funzprincipale() {
s:= "Questa è una stringa di prova."

fmt. Println (stringhe. ToLower (s)) // questa è una stringa di prova.
fmt. Println (stringhe. ToUpper (s)) // QUESTA È UNA STRINGA DI PROVA.
fmt. Println (stringhe. ATitolo(i)) // QUESTA È UNA STRINGA DI PROVA.
}

Costruzione di stringhe in Go

I generatori di stringhe sono un tipo che consente una concatenazione efficiente in Go. IL byte. Respingente type è uno dei costruttori di stringhe comunemente usati. IL byte. Respingente implementa un buffer di byte espandibile con metodi di lettura e scrittura per le operazioni, consentendo l'aggiunta efficiente di stringhe senza la necessità di creare nuove copie, a differenza del metodo + funzionamento e il Giuntura funzione.

importare (
"fmt"
"stringhe"
)

funzprincipale() {
var corde B. Costruttore

// Scrive alcune stringhe nel builder
B. ScriviStringa("Questo ")
B. ScriviStringa("È ")
B. ScriviStringa("UN ")
B. ScriviStringa("test ")
B. ScriviStringa("corda.")

// Ottieni la lunghezza del builder
fmt. Stampaln (b. Len())

// Converti il ​​builder in una stringa
str := b. Corda()
fmt. Stampaln (str)

// Reimposta il generatore
B. Ripristina()

// Scrive altre stringhe nel builder
B. ScriviStringa("Questo ")
B. ScriviStringa("È ")
B. ScriviStringa("un altro ")
B. ScriviStringa("test ")
B. ScriviStringa("corda.")

// Ottieni la capacità del costruttore
fmt. Stampaln (b. Tappo())

// Converti di nuovo il builder in una stringa
str = b. Corda()
fmt. Stampaln (str)
}

IL principale La funzione dimostra come è possibile utilizzare il stringhe. Costruttore type per la costruzione efficiente di stringhe. IL ScriviStringa metodo del Stringhe. Costruttore type estende la sequenza di stringhe l'una all'altra, e the Len Il metodo restituisce la lunghezza della stringa creata.

IL Corda Il metodo converte il contenuto del builder in una stringa e il metodo Ripristina Il metodo reimposta il generatore per la creazione di stringhe aggiuntive.

IL Cap Il metodo restituisce la capacità del generatore. Questo è lo spazio corrente che Go ha allocato per la stringa.

Taglio di corde in Go

IL stringhe Il pacchetto fornisce anche funzionalità per tagliare le stringhe nel file Ordinare, Taglia a sinistra, TrimPrefix, TrimDestra, TagliaSpazio, E TrimSuffix funzioni.

importare (
"stringhe"
"fmt"
)

funzprincipale() {
// la stringa completa
s:= "Ciao mondo!"

// l'elemento per il trim
prefisso := "Ciao"
suffisso := "Mondo!"

// taglia una stringa in base al trim set specificato
fmt. Println (stringhe. Taglia (i, "!"))

// ritaglia di spazi all'inizio e alla fine della stringa
fmt. Println (stringhe. TrimSpace (s))

// taglia dalla stringa di sinistra in base al trim set specificato
fmt. Println (stringhe. TrimLeft (s, "Ciao"))

// ritaglia dalla stringa di destra in base al set di rifiniture specificato
fmt. Println (stringhe. TagliaDestra (s, "Mondo!"))

// elimina un prefisso
fmt. Println (stringhe. TrimPrefix (s, prefisso))

// elimina un suffisso specifico
fmt. Println (stringhe. TrimSuffix (s, suffisso))
}

IL principale La funzione mostra come utilizzare le funzioni per il taglio. Le diverse funzioni tagliano il S stringa in vari modi:

Puoi formattare le stringhe in Go

La libreria standard Go fornisce anche il pacchetto fmt per la formattazione delle stringhe. Il pacchetto fmt utilizza verbi di formattazione in stile C per una formattazione efficiente delle stringhe in Go.