Wie schneide ich führende und nachfolgende Leerzeichen einer Zeichenfolge?


174

Was ist der effektive Weg, um die führenden und nachfolgenden Leerzeichen der Zeichenfolgenvariablen in Go zu kürzen?


4
Die Online-Dokumentation beschreibt genau, was los ist und enthält ausführbare und bearbeitbare Beispiele!
Volker

Ich wünschte, dies kann von "Ruby Strip Golang"
Kangkyu

Antworten:


264

Beispielsweise,

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

Ausgabe:

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

Versuchen Sie "\ t Hallo, \ nWelt \ n" funktioniert nicht :( ... wie entfernen Sie Newline?
KingRider

8
Anfang und Ende werden immer noch abgeschnitten, aber die neue Zeile in der Mitte wird nicht entfernt, da dies nicht der Fall ist. Sie müssten Strings verwenden. Ersetzen oder ähnliches, um die neue Zeile in der Mitte des Strings zu entfernen.
Gustavo Poscidonio

33

Es gibt eine Reihe von Funktionen zum Trimmen von Strings.

Sehen Sie sie dort: Trimmen

Hier ist ein Beispiel aus der Dokumentation, das führende und nachfolgende Leerzeichen entfernt:

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

2
Wie schneide ich \ t \ n? fmt.Printf("%q", strings.Trim("\t\t\t\t", `! \t`))Es funktioniert nicht
tom10271

5
@aokaddaoc hast du es versucht strings.TrimSpace(str)?
Ahmed T. Ali


7

Zum Trimmen der Zeichenfolge, haben Gos „Strings“ -Paket TrimSpace(), Trim()Funktion , dass trimmt führende und nachgestellte Leerzeichen.

Weitere Informationen finden Sie in der Dokumentation .


0

Genau wie @Kabeer erwähnt hat, können Sie TrimSpace verwenden. Hier ist ein Beispiel aus der Golang-Dokumentation:

package main

import (
    "fmt"
    "strings"
)

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

0

@ PeterSO hat die richtige Antwort. Ich füge hier weitere Beispiele hinzu:

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

Sie finden dies auch auf dem Spielplatz Go lang .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.