猿问

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

如何切断UTF字符串中的最后一个符文?这种方法显然是不正确的:


package main


import ("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)

}


12345678_0001
浏览 180回答 2
2回答

宝慕林4294392

几乎,utf8 包有一个函数来解码字符串中的最后一个符文,它也返回它的长度。从最后切掉那个字节数,你就是金子:str := "你好"_, lastSize := utf8.DecodeLastRuneInString(str)withoutLastRune := str[:len(str)-lastSize]fmt.Println(withoutLastRune)

米脂

使用 DecodeLastRuneInString 是最好的答案。我只是要注意,如果你更看重简单的代码而不是运行时效率,你可以这样做    s := []符文(str)    fmt.Println(string(s[:len(s)-1]))
随时随地看视频慕课网APP

相关分类

Go
我要回答