วิธีการตัดช่องว่างนำหน้าและต่อท้ายสีขาวของสตริง?


176

วิธีใดที่มีประสิทธิภาพในการตัดทอนช่องว่างนำหน้าและต่อท้ายของตัวแปรสตริงใน Go


4
เอกสารออนไลน์อธิบายสิ่งที่เกิดขึ้นและมีตัวอย่างที่สามารถรันได้และแก้ไขได้!
Volker

ฉันหวังว่าจะสามารถค้นหาได้โดย "Ruby strip golang"
kangkyu

คำตอบ:


267

ตัวอย่างเช่น,

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

เอาท์พุท:

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

ลองใช้ "\ t สวัสดี, \ nWorld \ n" ไม่ทำงาน :( ... จะลบบรรทัดใหม่ได้อย่างไร
KingRider

8
มันยังคงอยู่ที่จุดเริ่มต้นและจุดจบ แต่จะไม่ลบ newline ที่อยู่ตรงกลางเพราะนั่นไม่ใช่สิ่งที่ตัดแต่ง คุณจะต้องใช้สตริงแทนที่หรือสิ่งที่คล้ายกันเพื่อลบบรรทัดใหม่ในช่วงกลางของสตริง
Gustavo Poscidonio

34

มีฟังก์ชั่นมากมายสำหรับตัดสายในระหว่างเดินทาง

เห็นพวกเขาที่นั่น: ตัดแต่ง

นี่คือตัวอย่างที่ดัดแปลงจากเอกสารประกอบการลบช่องว่างนำหน้าและต่อท้ายสีขาว:

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

2
วิธีการตัดแต่ง \ t \ n? fmt.Printf("%q", strings.Trim("\t\t\t\t", `! \t`))มันไม่ทำงาน
tom10271

5
@aokaddaoc คุณได้ลองแล้วstrings.TrimSpace(str)หรือยัง?
Ahmed T. Ali


7

สำหรับการตัดแต่งสายของคุณไปของ "สตริง" แพคเกจมีTrimSpace(), Trim()ฟังก์ชั่นที่จดจ้องชั้นนำและช่องว่างต่อท้าย

ตรวจสอบเอกสารประกอบสำหรับข้อมูลเพิ่มเติม


0

เช่นเดียวกับ @Kabeer ได้กล่าวถึงคุณสามารถใช้ TrimSpace และนี่คือตัวอย่างจากเอกสารของ golang:

package main

import (
    "fmt"
    "strings"
)

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

0

@peterSO มีคำตอบที่ถูกต้อง ฉันกำลังเพิ่มตัวอย่างเพิ่มเติมที่นี่:

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

คุณสามารถค้นหาได้ในGo lang playgroundด้วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.