Cadena inversa GoLang

Sheeraz Gul 20 junio 2023
Cadena inversa GoLang

Este tutorial demuestra cómo invertir una cadena en GoLang.

Cadena inversa en GoLang

Invertir una cadena es una operación fácil en GoLang. Podemos intercambiar las letras de la cadena dada o crear una cadena vacía y agregar las letras de la cadena dada desde el final.

Siga los pasos para el método 1.

  • Primero, defina una función que acepte una cadena y devuelva una cadena resultante.
  • Ahora itere sobre la cadena dada y anteponga sus caracteres a la cadena resultante.
  • Una vez finalizada la iteración, devuelva la cadena resultante.

Implementemos un ejemplo basado en los pasos anteriores.

Ejemplo de código:

package main
import "fmt"

func StringReverse(InputString string) (ResultString string) {
    // iterating and prepending
    for _, c := range InputString {
        ResultString = string(c) + ResultString
    }
    return
}

func main() {
    String1 := "Delftstack"
    fmt.Println("The result for", String1, "is: ", StringReverse(String1))
    String2 := "Delftsatck.com"
    fmt.Println("The result for", String2, "is: ", StringReverse(String2))
    String3 := "www.Delftsatck.com"
    fmt.Println("The result for", String3, "is: ", StringReverse(String3))
}

El código anterior antepondrá los caracteres de la cadena dada a la cadena vacía para invertir la cadena.

Producción :

The result for Delftstack is:  kcatstfleD
The result for Delftsatck.com is:  moc.kctastfleD
The result for www.Delftsatck.com is:  moc.kctastfleD.www

Ahora veamos los pasos para el método 2.

  • Primero, defina una función que acepte y devuelva una cadena.
  • Convierta la cadena dada en la cadena de bytes.
  • Iterar sobre la cadena de bytes.
  • Inicie el intercambio, intercambie el primer elemento de la cadena de bytes con el último y el segundo con el penúltimo, y repita la operación hasta que no quede ningún elemento.
  • Convierta la cadena de bytes de nuevo al tipo de cadena.

Probemos un ejemplo basado en los métodos anteriores:

package main
import "fmt"

func StringReverse(InputString string) string {
    ByteString := []rune(InputString)
    for x, y := 0, len(ByteString)-1; x < y; x, y = x+1, y-1 {
        ByteString[x], ByteString[y] = ByteString[y], ByteString[x]
    }
    return string(ByteString)
}

func main() {
    String1 := "Delftstack"
    fmt.Println("The result for", String1, "is: ", StringReverse(String1))
    String2 := "Delftsatck.com"
    fmt.Println("The result for", String2, "is: ", StringReverse(String2))
    String3 := "www.Delftsatck.com"
    fmt.Println("The result for", String3, "is: ", StringReverse(String3))
}

El código anterior convierte la cadena en una cadena de bytes y luego la invierte.

Producción :

The result for Delftstack is:  kcatstfleD
The result for Delftsatck.com is:  moc.kctastfleD
The result for www.Delftsatck.com is:  moc.kctastfleD.www
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Artículo relacionado - Go String