我在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
我在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条答案
按热度按时间oxiaedzo1#
Trim返回字符串s的一个切片,删除割集中包含的所有前导和尾随Unicode码点。
sentence[:4]
为"Kab."
修剪将删除所有前导和尾随"k"
、"a"
、"b"
和"."
。https://golang.org/pkg/strings/#Trim
guicsvcw2#
如果要修剪前5个字节,则用途:
playground example
33qvvth13#
由于字符串是用Golang语言进行UTF-8编码的,单字节Unicode码位因此可以使用
result := sentence[5:]
就像下面的示例代码:
输出:
对于
"µµµµ Kolaka Utara"
这样的多字节Unicode码点,可以使用string([]rune(sentence)[5:])
,如下工作示例代码所示:输出:
参见文档:
func Trim(s string, cutset string) string
:Trim返回字符串s的一个切片,删除割集中包含的所有前导和尾随Unicode码点。
并参见:Extracting substrings in Go
eoigrqb64#
您应该知道"trim"在编程中的确切含义:从开头和结尾都去除一些字符。
在Golang的strings.trim中,第二个参数是一组字符。
Trim将删除集合中包含的所有前导字符和尾随字符。
在您的示例中:
这套是
对于"Kab. Kolaka Utara",Trim将从开头删除"Kab.",从结尾删除"a"。
所以,实际得到的字符串是"Kolaka Utar",而不是没有前导空格的"Kolaka Utar"。
如果您只想"修剪"前五个字符,则应使用以下语句:
1cklez4t5#
如果你确定要裁剪多少个字符,就使用这个方法。
输出: