索引 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中文网其他相关文章!