Golang:字符串修剪功能

时间:2016-08-05 02:51:27

标签: string go trim

我在Golang中使用strings.Trim()来修剪前五个字符 但是,最后一个“a”总是不见了 为什么会这样?

示例:

sentence := "Kab. Kolaka Utara"
result := strings.Trim(sentence,sentence[:4])
fmt.Println(result)

结果:Kolaka Utar
我期待:Kolaka Utara

https://play.golang.org/p/R6UoKWNaVv

感谢您的帮助。

5 个答案:

答案 0 :(得分:6)

Trim返回一个字符串s的片段,其中包含cutset中包含的所有前导和尾随Unicode代码点。

句子[:4]是" Kab。"修剪将删除所有前导和尾随""," a"," b","。"

https://golang.org/pkg/strings/#Trim

答案 1 :(得分:4)

如果要修剪前5个字节,请使用:

result := sentence[5:]

playground example

答案 2 :(得分:2)

由于字符串在Golang中以单字节Unicode代码点进行UTF-8编码,因此您可以使用result := sentence[5:]
像这样的工作示例代码:

package main

import "fmt"

func main() {
    sentence := "Kab. Kolaka Utara"
    result := sentence[5:]
    fmt.Println(result)
}

输出:

Kolaka Utara

对于像"µµµµ Kolaka Utara"这样的多字节Unicode代码点,您可以使用string([]rune(sentence)[5:]),就像这个工作示例代码一样:

package main

import "fmt"

func main() {
    sentence := "µµµµ Kolaka Utara"
    result := string([]rune(sentence)[5:])
    fmt.Println(result)
}

输出:

Kolaka Utara

并查看文档:

func Trim(s string, cutset string) string

  

Trim返回带有所有前导和尾随的字符串s的切片   删除了cutset中包含的Unicode代码点。

并查看:Extracting substrings in Go

答案 3 :(得分:1)

你应该知道" trim"的确切含义。在编程中:从开头和结尾都删除一些字符。

在Golang的字符串中.Trim,第二个参数是一组字符。

修剪将删除集合中包含的所有前导和尾随字符。

在你的例子中:

该集是

{"K", "a", ".", "b"};

对于" Kab。 Kolaka Utara",Trim将删除" Kab。"从一开始就是" a"从最后开始。

所以,你得到的实际字符串是" Kolaka Utar"而不是" Kolaka Utar"没有领先的空间。

如果你只想"修剪"前五个字符,你应该使用这个语句:

sentence = sentence[5:].

答案 4 :(得分:0)

如果您确定要修剪的字符数。使用此方法。

func main() {
    sentence := "Kab. Kolaka Utara"
    fmt.Println(sentence)
    fmt.Println(sentence[5:len(sentence)])

}

输出:

 Value :  Kab. Kolaka Utara
 Trimed : Kolaka Utara