Bir ipin ön ve arka boşluklarını nasıl kırpabilirim?


176

Go'da dize değişkeninin önde gelen ve sondaki beyaz boşluklarını kırpmanın etkili yolu nedir?


4
Çevrimiçi belgeler tam olarak neler olup bittiğini açıklar ve çalıştırılabilir ve düzenlenebilir örnekleri vardır!
Volker

Keşke bu "Ruby strip golang" tarafından aranabilir
kangkyu

Yanıtlar:


267

Örneğin,

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

Çıktı:

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

"\ T Merhaba, \ nWorld \ n" çalışmıyor :( ... newline nasıl kaldırılır?
KingRider

8
Hala başlangıcını ve sonunu keser, ancak ortadaki satırsonu kaldırmaz çünkü kırpma bu değildir. Dizeyi kullanmanız gerekir. Dizenin ortasındaki yeni satırı kaldırmak için değiştirin.
Gustavo Poscidonio

34

Yolda ipleri kırpmak için bir sürü işlev var.

Onları orada görün: Trim

Belgelerden uyarlanmış, önde gelen ve arkadaki boşlukları kaldıran bir örnek:

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

2
\ T \ n nasıl kesilir? fmt.Printf("%q", strings.Trim("\t\t\t\t", `! \t`))O çalışmıyor
tom10271

5
@ aokaddaoc denediniz strings.TrimSpace(str)mi?
Ahmed T. Ali


7

Senin dize kırparak için, Go "dizeleri" Paket sahip TrimSpace(), Trim()süsler lider ve sonunda boşluk bu işlevi.

Daha fazla bilgi için belgelere bakın.


0

@Kabeer'in belirttiği gibi, TrimSpace'i kullanabilirsiniz ve işte golang belgelerinden bir örnek:

package main

import (
    "fmt"
    "strings"
)

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

0

@peterSO'nun cevabı doğru. Buraya daha fazla örnek ekliyorum:

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

Bunu Go lang oyun alanında da bulabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.