String 使用字符串安全地将字节写入UTF-8字符。生成器?
我正在做一个练习,我必须倒转一些弦。我听说Go strings.Builder是目前创建字符串的最快方法,所以我做了以下工作:String 使用字符串安全地将字节写入UTF-8字符。生成器?,string,go,String,Go,我正在做一个练习,我必须倒转一些弦。我听说Go strings.Builder是目前创建字符串的最快方法,所以我做了以下工作: func String(toReverse string) string { var reversedString strings.Builder for i := len(toReverse) - 1; i >= 0; i-- { reversedString.WriteByte(toReverse[i]) }
func String(toReverse string) string {
var reversedString strings.Builder
for i := len(toReverse) - 1; i >= 0; i-- {
reversedString.WriteByte(toReverse[i])
}
return reversedString.String()
}
问题是这样的多字节测试用例不起作用:
你好,,世界
变成
“\u008c\u0095ç\u0096¸ä,奥利”
谢谢。虽然可以(默认情况下)通过索引访问字符串的各个字节,但Go字符串也可以转换为表示各个Unicode代码点的符文数组 首先,您需要将字符串转换为[]符文,并对其进行迭代:
func String(toReverse string) string {
var reversedString strings.Builder
runes := []rune(toReverse)
for i := len(runes) - 1; i >= 0; i-- {
reversedString.WriteRune(runes[i])
}
return reversedString.String()
}
请参阅以获取实时演示。虽然可以通过索引访问字符串的各个字节,但Go字符串也可以转换为表示各个Unicode代码点的符文数组 首先,您需要将字符串转换为[]符文,并对其进行迭代:
func String(toReverse string) string {
var reversedString strings.Builder
runes := []rune(toReverse)
for i := len(runes) - 1; i >= 0; i-- {
reversedString.WriteRune(runes[i])
}
return reversedString.String()
}
有关实时演示,请参阅。您正在反转字节,而不是字符。这个包裹应该对你有帮助。尽管在反转Unicode时仍有许多死角。一般来说,这是不安全的。您正在反转字节,而不是字符。这个包裹应该对你有帮助。尽管在反转Unicode时仍有许多死角。一般来说,这是不安全的。