Golang中的内建变量类型有:byte字节,rune字符
rune:(相当于go的char)
其他字符串操作:
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
s := "Yes我爱欣欣!" // utf-8
fmt.Println(len(s))
fmt.Printf("%s\n", []byte(s))
for _, b := range []byte(s) {
fmt.Printf("%X ", b)
}
fmt.Println()
for i, ch := range s { // ch is a rune
fmt.Printf("(%d %X)", i, ch)
}
fmt.Println()
fmt.Println("Rune count:", utf8.RuneCountInString(s))
bytes := []byte(s)
for len(bytes) > 0 {
ch, size := utf8.DecodeRune(bytes)
bytes = bytes[size:]
fmt.Printf("%c ", ch)
}
fmt.Println()
for i, ch := range []rune(s) {
fmt.Printf("(%d %c)", i, ch)
}
fmt.Println()
}
输出:
16
Yes我爱欣欣!
59 65 73 E6 88 91 E7 88 B1 E6 AC A3 E6 AC A3 21
(0 59)(1 65)(2 73)(3 6211)(6 7231)(9 6B23)(12 6B23)(15 21)
Rune count: 8
Y e s 我 爱 欣 欣 !
(0 Y)(1 e)(2 s)(3 我)(4 爱)(5 欣)(6 欣)(7 !)