Stringa inversa Golang

Stringa inversa Golang
In GO, una stringa è una sequenza di byte UTF-8. Secondo lo standard di codifica UTF-8, i caratteri ASCII sono singoli. Tuttavia, altri personaggi vanno tra 1 e 4 byte. A causa di questa incoerenza, è quasi impossibile indicizzare un carattere specifico all'interno di una stringa.

Se vogliamo indicizzare un personaggio in GO, possiamo convertire una stringa in un array o in rune. Una rune è fondamentalmente un punto Unicode. Un punto Unicode si riferisce a un valore numerico che rappresenta un carattere Unicode.

Questo breve articolo imparerà come invertire una stringa per andare prima convertendola in una serie di rune.

Stringa inversa - rune per rune

Considera il programma di esempio di seguito:

Pacchetto principale
importazione (
"FMT"
)
func main ()
str: = "ciao"
runE_arr: = [] rune (str)
var rev [] rune
per i: = len (rune_arr) - 1; i> = 0; io--
rev = append (rev, runE_arr [i])

fmt.Println ("reverse:", string (rev))

Nell'esempio sopra, iniziamo convertendo la stringa "STR" in una serie di rune. In questo modo ci consente di indicizzare i singoli caratteri nella stringa.

Una volta che abbiamo l'indice dei singoli caratteri, aggiungiamo ogni personaggio a una nuova stringa a partire dalla fine per iniziare.

L'output risultante è la stringa in ordine inverso, come:

REVERSO: OLLEH

Stringa inversa - byte

Come accennato, una stringa è una sequenza di byte. Quindi, possiamo creare il contrario di una stringa invertendo ogni byte alla volta.

Prendi l'esempio di seguito:

func reverse (s string) string
stringhe var byte.Costruttore
byte.Grow (len (s))
per i: = len (s) - 1; i> = 0; io--
byte.WriteByte (s [i])

Byte di ritorno.Corda()

L'esempio sopra converte una stringa invertendolo byte per byte.

Conclusione

Questo articolo mostra come invertire una stringa nel linguaggio di programmazione Go.

Continuare a praticare!