为了账号安全,请及时绑定邮箱和手机立即绑定

切断 UTF 字符串中的最后一个符文

切断 UTF 字符串中的最后一个符文

Go
12345678_0001 2021-10-11 10:48:01
如何切断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)


查看完整回答
反对 回复 2021-10-11
?
米脂

TA贡献1836条经验 获得超3个赞

使用 DecodeLastRuneInString 是最好的答案。我只是要注意,如果你更看重简单的代码而不是运行时效率,你可以这样做


    s := []符文(str)

    fmt.Println(string(s[:len(s)-1]))


查看完整回答
反对 回复 2021-10-11
  • 2 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信