如何将一个字符串反转?实现 Reverse("abc") => "cba"
在Go语言中实现字符串反转需要考虑字符串的编码方式。Go语言的字符串是基于UTF-8编码的,而UTF-8是一种变长编码,每个Unicode码点(rune)可能由1到4个字节表示。因此,简单地按字节反转会破坏多字节字符。正确的做法是先将字符串转换为rune切片,反转rune切片,再转换回字符串。
以下是实现字符串反转的代码示例:
package mainimport "fmt"func Reverse(s string) string {// 将字符串转换为rune切片,处理多字节字符runes := []rune(s)n := len(runes)// 反转rune切片for i, j := 0, n-1; i < j; i, j = i+1, j-1 {runes[i], runes[j] = runes[j], runes[i]}// 将反转后的rune切片转换回字符串return string(runes)
}func main() {// 测试ASCII字符串fmt.Println(Reverse("abc")) /