Como aparar espaços em branco à esquerda e à direita de uma string?

174

Qual é a maneira eficaz de aparar os espaços em branco à esquerda e à esquerda da variável de sequência no Go?

Alex Mathew
fonte
4
A documentação online descreve exatamente o que está acontecendo e possui exemplos executáveis ​​e editáveis!
Volker
Eu desejo que este pode ser pesquisada por "Ruby tira golang"
kangkyu

Respostas:

264

Por exemplo,

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)
}

Resultado:

16 "\t Hello, World\n "
12 "Hello, World"
peterSO
fonte
Tente "\ t Olá, \ Nworld \ n" não trabalho :( ... como remover nova linha?
KingRider
8
Ele ainda apara o começo e o fim, mas não remove a nova linha no meio, porque não é isso que faz o corte. Você precisaria usar strings.Replace ou algo semelhante para remover a nova linha no meio da string.
Gustavo Poscidonio
33

Há várias funções para aparar as strings.

Veja-os lá: Trim

Aqui está um exemplo, adaptado da documentação, removendo os espaços em branco iniciais e finais:

fmt.Printf("[%q]", strings.Trim(" Achtung  ", " "))
Denys Séguret
fonte
2
Como cortar \ t \ n? fmt.Printf("%q", strings.Trim("\t\t\t\t", `! \t`))Ele não está funcionando
tom10271
5
@aokaddaoc você já tentou strings.TrimSpace(str)?
Ahmed T. Ali
7

Para aparar sua seqüência, o pacote de "cordas" de Go tem TrimSpace(), Trim()função que guarnições esquerda e à direita espaços.

Consulte a documentação para obter mais informações.

Kabeer Shaikh
fonte
0

Assim como o @Kabeer mencionou, você pode usar o TrimSpace e aqui está um exemplo da documentação do golang:

package main

import (
    "fmt"
    "strings"
)

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

@peterSO tem resposta correta. Estou adicionando mais exemplos aqui:

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))   
}

Você também pode encontrar isso no playground Go lang .

S.Mishra
fonte