如何將一個字符串反轉?實現 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")) /