如何获得“ E”输出而不是69?
package main
import "fmt"
func main() {
fmt.Print("HELLO"[1])
}
Golang是否具有将字符转换为字节,反之亦然的功能?
Answers:
解释的字符串文字是使用单个字符的UTF-8编码(可能是多字节)在双引号“”之间的字符序列。在UTF-8中,ASCII字符是单字节,对应于前128个Unicode字符。字符串的行为类似于字节片。符文是标识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
界
读:
也可以通过切片来完成
package main
import "fmt"
func main() {
fmt.Print("HELLO"[1:2])
}
注意:此解决方案仅适用于ASCII字符。
隔离字符串中字符的另一种解决方案
package main
import "fmt"
func main() {
var word string = "ZbjTS"
// P R I N T
fmt.Println(word)
yo := string([]rune(word)[0])
fmt.Println(yo)
//I N D E X
x :=0
for x < len(word){
yo := string([]rune(word)[x])
fmt.Println(yo)
x+=1
}
}
对于字符串数组:
fmt.Println(string([]rune(sArray[0])[0]))
// =注释行
len("cafés")
> len([]rune("cafés"))
,并可以重新转换在每个迭代,串O(N²)。只要做到for _, r := range word { fmt.Printf("%c", r) }
。如果你真的想与指数环for x := 0; x < limit; x++
。请在回答之前学习一门语言的基础知识问题
"हैलो"[:1]
它给你