索引 Golang 字串中的字符
要從字串中檢索字符,可以使用索引操作。但是,您可能會遇到索引值與預期字元不符的情況。例如,在下面的程式碼中:
package main import "fmt" func main() { fmt.Print("HELLO"[1]) }
輸出是 69,而不是字母「E」。
理解 Golang 字串編碼
Golang 對字串文字使用 UTF-8 編碼。 ASCII 字元(包括字母“E”)佔用一個位元組。但是,較大的 Unicode 字元可能由多個位元組表示。
使用符文進行字符索引
要正確索引字符,請使用符文:表示 Unicode 代碼點的整數。 rune 是 UTF-8 中字元的基礎類型。您可以使用 rune() 函數將位元組轉換為符文。
將位元組轉換為字元
要將位元組轉換為其對應的字符,您可以使用string() 函數:
fmt.Println(string("Hello"[1])) // ASCII only
這種方法適用於ASCII
將符文轉換為字符
對於Unicode 字符,您可以使用[]rune() 切片將符文轉換為字符:
fmt.Println(string([]rune("Hello, 世界")[1])) // UTF-8
Unicode範例字元
考慮以下範例:
fmt.Println(string([]rune("Hello, 世界")[8])) // UTF-8
這將列印“界”,它是漢字“世界”的 Unicode 代碼點。
其他資源
以上是為什麼 Go 中的字串索引不總是傳回預期的字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!