¿Cómo recortar los espacios en blanco iniciales y finales de una cadena?

176

¿Cuál es la forma efectiva de recortar los espacios en blanco iniciales y finales de la variable de cadena en Go?

Alex Mathew
fuente
44
¡La documentación en línea describe exactamente lo que está sucediendo y tiene ejemplos ejecutables y editables!
Volker
Desearía que esto pueda buscarse en "Ruby strip golang"
kangkyu

Respuestas:

267

Por ejemplo,

package main

import (
    "fmt"
    "strings"
)

func main() {
    s := "\t Hello, World\n "
    fmt.Printf("%d %q\n", len(s), s)
    t := strings.TrimSpace(s)
    fmt.Printf("%d %q\n", len(t), t)
}

Salida:

16 "\t Hello, World\n "
12 "Hello, World"
PeterSO
fuente
Intenta "\ t Hola, \ nWorld \ n" no funciona :( ... ¿cómo eliminar nueva línea?
KingRider
8
Todavía recorta el principio y el final, pero no eliminará la nueva línea en el medio porque eso no es lo que hace el recorte. Tendría que usar cadenas. Reemplace o algo similar para eliminar la nueva línea en el medio de la cadena.
Gustavo Poscidonio
34

Hay un montón de funciones para recortar cadenas en marcha.

Véalos allí: Recortar

Aquí hay un ejemplo, adaptado de la documentación, eliminando los espacios en blanco iniciales y finales:

fmt.Printf("[%q]", strings.Trim(" Achtung  ", " "))
Denys Séguret
fuente
2
¿Cómo recortar \ t \ n? fmt.Printf("%q", strings.Trim("\t\t\t\t", `! \t`))No está funcionando
tom10271
55
@aokaddaoc has intentado strings.TrimSpace(str)?
Ahmed T. Ali
9
package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.TrimSpace(" \t\n Hello, Gophers \n\t\r\n"))
}

Salida: Hola, Gophers

Y simplemente siga este enlace: https://golang.org/pkg/strings/#TrimSpace

Nikta Jn
fuente
7

Para recortar la cadena, el paquete de "cadenas" de Go tiene TrimSpace(), Trim()función que recorta espacios iniciales y finales.

Consulte la documentación para más información.

Kabeer Shaikh
fuente
0

Tal como lo ha mencionado @Kabeer, puede usar TrimSpace y aquí hay un ejemplo de la documentación de golang:

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.TrimSpace(" \t\n Hello, Gophers \n\t\r\n"))
}
Nanthini Muniapan
fuente
0

@peterSO tiene la respuesta correcta. Estoy agregando más ejemplos aquí:

package main

import (
    "fmt"
    strings "strings"
)

func main() { 
    test := "\t pdftk 2.0.2  \n"
    result := strings.TrimSpace(test)
    fmt.Printf("Length of %q is %d\n", test, len(test))
    fmt.Printf("Length of %q is %d\n\n", result, len(result))

    test = "\n\r pdftk 2.0.2 \n\r"
    result = strings.TrimSpace(test)
    fmt.Printf("Length of %q is %d\n", test, len(test))
    fmt.Printf("Length of %q is %d\n\n", result, len(result))

    test = "\n\r\n\r pdftk 2.0.2 \n\r\n\r"
    result = strings.TrimSpace(test)
    fmt.Printf("Length of %q is %d\n", test, len(test))
    fmt.Printf("Length of %q is %d\n\n", result, len(result))

    test = "\r pdftk 2.0.2 \r"
    result = strings.TrimSpace(test)
    fmt.Printf("Length of %q is %d\n", test, len(test))
    fmt.Printf("Length of %q is %d\n\n", result, len(result))   
}

Puedes encontrar esto en Go Lang playground también.

S.Mishra
fuente