Bagaimana cara memotong ruang putih string yang memimpin dan tertinggal?


176

Yang merupakan cara efektif untuk memangkas spasi putih variabel string terkemuka dan tertinggal di Go?


4
Dokumentasi online menjelaskan dengan tepat apa yang sedang terjadi dan memiliki contoh yang bisa dijalankan dan diedit!
Volker

Saya berharap ini dapat dicari oleh "Ruby strip golang"
kangkyu

Jawaban:


267

Sebagai contoh,

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

Keluaran:

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

Coba "\ t Halo, \ nWorld \ n" tidak bekerja :( ... bagaimana menghapus baris baru?
KingRider

8
Itu masih memotong awal dan akhir tetapi tidak akan menghapus baris baru di tengah karena bukan itu yang trimming tidak. Anda harus menggunakan string. Ganti atau yang serupa untuk menghapus baris baru di tengah-tengah string.
Gustavo Poscidonio

34

Ada banyak fungsi untuk memangkas string.

Lihat mereka di sana: Potong

Berikut ini contohnya, diadaptasi dari dokumentasi, menghilangkan spasi putih awal dan akhir:

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

2
Bagaimana cara memotong \ t \ n? fmt.Printf("%q", strings.Trim("\t\t\t\t", `! \t`))Ini tidak berfungsi
tom10271

5
@ aokaddaoc sudahkah Anda mencoba strings.TrimSpace(str)?
Ahmed T. Ali


7

Untuk memangkas string Anda, paket "string" Go memiliki TrimSpace(), Trim()fungsi yang memangkas ruang utama dan belakang.

Periksa dokumentasi untuk informasi lebih lanjut.


0

Sama seperti @Kabeer telah disebutkan, Anda dapat menggunakan TrimSpace dan berikut ini adalah contoh dari dokumentasi golang:

package main

import (
    "fmt"
    "strings"
)

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

0

@peterSO memiliki jawaban yang benar. Saya menambahkan lebih banyak contoh di sini:

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

Anda dapat menemukan ini di taman bermain Go lang juga.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.