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.