rune相当于go的char
使用range遍历pos,rune对
使用utf8.RuneCountInString(s)获得字符数量
使用len获得字节长度,使用[]byte获得字节
一般把字节转成[]rune,更加容易操作
package main import ( "fmt" "unicode/utf8" ) func main() { s:="Yes我爱上百度!" fmt.Println(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 长度", 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() }