如何修剪字符串的开头和结尾空格?


175

在Go中修剪字符串变量的开头和结尾空白的有效方法是什么?


4
在线文档准确描述了正在发生的事情,并提供了可运行和可编辑的示例!
Volker 2014年

我希望可以通过“ Ruby strip golang”进行搜索
kangkyu

Answers:


265

例如,

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 Hello,\ nWorld \ n”不起作用:( ...如何删除换行符?
KingRider

8
它仍然会修剪开始和结尾,但不会删除中间的换行符,因为这不是修剪的作用。您必须使用string.Replace或类似的东西来删除字符串中间的换行符。
古斯塔沃·波西多尼奥

34

有很多函数可以修剪字符串。

在那里见他们: 修剪

这是一个改编自文档的示例,删除了开头和结尾的空格:

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

2
如何修剪\ t \ n?fmt.Printf("%q", strings.Trim("\t\t\t\t", `! \t`))它无法正常工作
tom10271 '17

5
@aokaddaoc您是否尝试过strings.TrimSpace(str)
艾哈迈德·T·阿里



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游乐场中找到它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.