Làm thế nào để cắt các khoảng trắng hàng đầu và dấu của một chuỗi?


174

Đâu là cách hiệu quả để cắt các khoảng trắng hàng đầu và dấu của biến chuỗi trong Go?


4
Các tài liệu trực tuyến mô tả chính xác những gì đang diễn ra và có các ví dụ có thể chạy và có thể chỉnh sửa!
Volker

Tôi ước điều này có thể được tìm kiếm bởi "Ruby dải golang"
kangkyu

Câu trả lời:


264

Ví dụ,

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

Đầu ra:

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

Hãy thử "\ t Xin chào, \ nWorld \ n" không hoạt động :( ... làm cách nào để xóa dòng mới?
KingRider

8
Nó vẫn cắt đầu và cuối nhưng nó sẽ không xóa dòng mới ở giữa vì đó không phải là việc cắt xén. Bạn sẽ phải sử dụng chuỗi. Đặt lại hoặc một cái gì đó tương tự để xóa dòng mới ở giữa chuỗi.
Gustavo Poscidonio

33

Có một loạt các chức năng để cắt chuỗi đi.

Xem chúng ở đó: Cắt

Dưới đây là một ví dụ, được điều chỉnh từ tài liệu, loại bỏ các khoảng trắng hàng đầu và dấu:

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

2
Làm thế nào để cắt \ t \ n? fmt.Printf("%q", strings.Trim("\t\t\t\t", `! \t`))Nó không hoạt động
tom10271

5
@aokaddaoc bạn đã thử strings.TrimSpace(str)chưa?
Ahmed T. Ali


7

Đối với cắt tỉa chuỗi của bạn, "chuỗi" gói Go có TrimSpace(), Trim()chức năng mà Trims ở đầu và đuôi không gian.

Kiểm tra tài liệu để biết thêm thông tin.


0

Giống như @Kabeer đã đề cập, bạn có thể sử dụng TrimSpace và đây là một ví dụ từ tài liệu golang:

package main

import (
    "fmt"
    "strings"
)

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

0

@peterSO có câu trả lời đúng. Tôi đang thêm nhiều ví dụ ở đây:

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

Bạn cũng có thể tìm thấy điều này trong sân chơi Go lang .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.