此问题在此处已有答案:
How to get the last X Characters of a Golang String?(2个答案)
20天前关闭。
我正在尝试在Go语言中使用Reverse函数。但是通过反转字节,它可能是无效的符文。如何处理这种情况?
func Reverse(input string) string {
builder := strings.Builder{}
builder.Grow(len(input))
for i, w := len(input)-1, 0; i >= 0; i -= w {
r, width := utf8.DecodeLastRuneInString(input[:i+1])
w = width
builder.WriteRune(r)
}
return builder.String()
}
字符串
如果我试着按原样写符文,它会有意想不到的结果,但我想返回一个错误
1条答案
按热度按时间atmip9wb1#
utf8.DecodeLastRuneInString()
说明了如果编码无效,则返回RuneError, 1
。您可以检查并决定接下来要做什么:字符串
测试它:
型
输出(在Go Playground上尝试):
型
还要注意的是,你可以编写没有变量的循环,只需要重新切片
input
变量:型
这个输出是一样的,在Go Playground上试试。