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?

Alex Mathew
sumber
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"
peterSO
sumber
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  ", " "))
Denys Séguret
sumber
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
9
package main

import (
    "fmt"
    "strings"
)

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

Output: Halo, akan menghubungkan

Dan cukup ikuti tautan ini - https://golang.org/pkg/strings/#TrimSpace

Nikta Jn
sumber
7

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

Periksa dokumentasi untuk informasi lebih lanjut.

Kabeer Shaikh
sumber
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"))
}
Nanthini Muniapan
sumber
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.

S.Mishra
sumber