Cadena inversa de Golang

Cadena inversa de Golang
En Go, una cadena es una secuencia de bytes UTF-8. Según el estándar de codificación UTF-8, los caracteres ASCII son de un solo byte. Sin embargo, otros personajes varían entre 1 y 4 bytes. Debido a esta inconsistencia, es casi imposible indexar un carácter específico dentro de una cadena.

Si queremos indexar un personaje en Go, podemos convertir una cadena en una matriz o runa. Una runa es básicamente un punto unicode. Un punto unicode se refiere a un valor numérico que representa un carácter unicode.

Este breve artículo aprenderá cómo revertir una cadena en Go al convertirla primero en una variedad de runas.

Cadena inversa - Rune de Rune

Considere el programa de ejemplo a continuación:

paquete principal
importar (
"FMT"
)
func Main ()
str: = "hola"
rune_arr: = [] rune (str)
var rev [] runa
para i: = len (rune_arr) - 1; i> = 0; i--
rev = append (rev, rune_arr [i])

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

En el ejemplo anterior, comenzamos convirtiendo la cadena "str" ​​en una matriz de runa. Hacerlo nos permite indexar caracteres individuales en la cadena.

Una vez que tenemos el índice de caracteres individuales, agregamos cada personaje a una nueva cadena que comienza desde el final para comenzar.

La salida resultante es la cadena en orden inverso, como:

Reverso: Olleh

Cadena inversa - byte

Como se mencionó, una cadena es una secuencia de bytes. Por lo tanto, podemos crear el reverso de una cadena invirtiendo cada byte a la vez.

Tome el ejemplo a continuación:

FUNC Reverse (S String) String
Var bytes cadenas.Constructor
byte.Crecer (len (s))
para i: = len (s) - 1; i> = 0; i--
byte.WriteByte (S [i])

byte de regreso.Cadena()

El ejemplo anterior convierte una cadena invirtiéndola byte por byte.

Conclusión

Este artículo le muestra cómo revertir una cadena en el lenguaje de programación GO.

Sigue practicando!