Come tagliare gli spazi bianchi iniziali e finali di una stringa?


176

Qual è il modo efficace per tagliare gli spazi bianchi iniziali e finali della variabile stringa in Go?


4
La documentazione online descrive esattamente cosa sta succedendo e ha esempi eseguibili e modificabili!
Volker,

Vorrei che questo potesse essere cercato da "Ruby strip golang"
kangkyu,

Risposte:


267

Per esempio,

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

Produzione:

16 "\t Hello, World\n "
12 "Hello, World"

Prova "\ t Hello, \ nWorld \ n" non funziona :( ... come rimuovere newline?
KingRider

8
Taglia ancora l'inizio e la fine ma non rimuoverà la nuova riga nel mezzo perché non è ciò che fa il taglio. Dovresti usare le stringhe. Sostituisci o qualcosa di simile per rimuovere la nuova riga nel mezzo della stringa.
Gustavo Poscidonio,

34

Ci sono un sacco di funzioni per tagliare le stringhe in movimento.

Li vedi lì: Trim

Ecco un esempio, adattato dalla documentazione, che rimuove gli spazi bianchi iniziali e finali:

fmt.Printf("[%q]", strings.Trim(" Achtung  ", " "))

2
Come tagliare \ t \ n? fmt.Printf("%q", strings.Trim("\t\t\t\t", `! \t`))Non funziona
tom10271

5
@aokaddaoc hai provato strings.TrimSpace(str)?
Ahmed T. Ali,


7

Per tagliare la stringa, pacchetto "stringhe" di Go hanno TrimSpace(), Trim()funzione che finiture spazi iniziali e finali.

Consultare la documentazione per ulteriori informazioni.


0

Proprio come ha menzionato @Kabeer, puoi usare TrimSpace ed ecco un esempio dalla documentazione di Golang:

package main

import (
    "fmt"
    "strings"
)

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

0

@peterSO ha la risposta corretta. Sto aggiungendo altri esempi qui:

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

Puoi trovarlo anche nel parco giochi Go lang .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.