Jak przyciąć początkowe i końcowe białe spacje w ciągu?

175

Jaki jest skuteczny sposób przycinania wiodących i końcowych białych znaków zmiennej łańcuchowej w Go?

Alex Mathew
źródło
4
Dokumentacja online opisuje dokładnie, co się dzieje i zawiera przykłady do uruchomienia i edycji!
Volker,
Chciałbym, żeby można było wyszukiwać za pomocą „Ruby strip golang”
kangkyu

Odpowiedzi:

265

Na przykład,

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

Wynik:

16 "\t Hello, World\n "
12 "Hello, World"
peterSO
źródło
Spróbuj „\ t Witaj, \ nŚwiat \ n” nie działa :( ... jak usunąć
znak
8
Nadal przycina początek i koniec, ale nie usunie nowej linii w środku, ponieważ nie to robi przycinanie. Musiałbyś użyć łańcuchów, wymienić lub coś podobnego, aby usunąć znak nowej linii w środku ciągu.
Gustavo Poscidonio
34

Jest wiele funkcji do przycinania strun.

Zobacz je tam: Przytnij

Oto przykład, zaadaptowany z dokumentacji, usuwający początkowe i końcowe białe spacje:

fmt.Printf("[%q]", strings.Trim(" Achtung  ", " "))
Denys Séguret
źródło
2
Jak przyciąć \ t \ n? fmt.Printf("%q", strings.Trim("\t\t\t\t", `! \t`))To nie działa
tom10271
5
@aokaddaoc próbowałeś strings.TrimSpace(str)?
Ahmed T. Ali
7

Do przycinania swój ciąg, pakiet Go „struny” mają TrimSpace(), Trim()funkcję wykończenia początkowe i końcowe spacje.

Sprawdź dokumentację, aby uzyskać więcej informacji.

Kabeer Shaikh
źródło
0

Tak jak wspomniał @Kabeer, możesz użyć TrimSpace, a oto przykład z dokumentacji golang:

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.TrimSpace(" \t\n Hello, Gophers \n\t\r\n"))
}
Nanthini Muniapan
źródło
0

@peterSO ma poprawną odpowiedź. Tutaj dodaję więcej przykładów:

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

Możesz to znaleźć również na placu zabaw Go lang .

S. Mishra
źródło