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?


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"

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

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.


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

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 .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.