string - 如何索引 Golang 字符串中的字符?

标签 string go character

如何获得“E”输出而不是 69?

package main

import "fmt"

func main() {
    fmt.Print("HELLO"[1])
}

Golang 是否具有将 char 转换为 byte 以及反之亦然的功能?

最佳答案

解释的字符串文字是双引号 ""之间的字符序列,使用单个字符的(可能是多字节的)UTF-8 编码。在 UTF-8 中,ASCII 字符是对应于前 128 个 Unicode 字符的单字节字符。字符串的行为类似于 byte slice 。 rune 是标识 Unicode 代码点的整数值。因此,

package main

import "fmt"

func main() {
    fmt.Println(string("Hello"[1]))              // ASCII only
    fmt.Println(string([]rune("Hello, 世界")[1])) // UTF-8
    fmt.Println(string([]rune("Hello, 世界")[8])) // UTF-8
}

输出:

e
e
界

阅读:

Go Programming Language Specification关于 Conversions 的部分.

The Go Blog: Strings, bytes, runes and characters in Go

关于string - 如何索引 Golang 字符串中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15018545/

相关文章:

java - 在对象数组中搜索值

c++ - 字符串函数的返回

docker - "exec:\"scripts/script.sh\": stat scripts/script. sh: 没有那个文件或目录

go - 指向 Go 中接口(interface)的指针

parsing - 如何解析golang时间

将电话号码从字母形式转换为数字形式

javascript - 删除数组第一个索引的第一个字符?

java - 将 android.graphics.path 值转换为字符串?

firefox - Unicode 特殊字符在 Firefox 和 Chrome/IE 中的显示不同

android - android中的EditBox字符限制