如何切断UTF字符串中的最后一个符文?这种方法显然是不正确的:package mainimport ("fmt" "unicode/utf8")func main() { string := "你好" length := utf8.RuneCountInString(string) // how to cut off last rune in UTF string? // this method is obviously incorrect: withoutLastRune := string[0:length-1] fmt.Println(withoutLastRune)}
2 回答
宝慕林4294392
TA贡献2021条经验 获得超8个赞
几乎,
utf8 包有一个函数来解码字符串中的最后一个符文,它也返回它的长度。从最后切掉那个字节数,你就是金子:
str := "你好"
_, lastSize := utf8.DecodeLastRuneInString(str)
withoutLastRune := str[:len(str)-lastSize]
fmt.Println(withoutLastRune)
米脂
TA贡献1836条经验 获得超3个赞
使用 DecodeLastRuneInString 是最好的答案。我只是要注意,如果你更看重简单的代码而不是运行时效率,你可以这样做
s := []符文(str)
fmt.Println(string(s[:len(s)-1]))
- 2 回答
- 0 关注
- 178 浏览
添加回答
举报
0/150
提交
取消