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?


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"

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  ", " "))

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.


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

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 .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.