package main
import (
"fmt"
"unicode/utf8"
)
func main() {
s:="HDBGZ你好!"
fmt.Println(len(s)) //14
//打印具体的字节数字
for _,b:=range []byte(s){
fmt.Printf("%x ",b) //UTF-8类型
// 每个中文占3个字节
// 48 44 42 47 5a e4 bd a0 e5 a5 bd ef bc 81
}
fmt.Println()
for i,ch:=range s{
fmt.Printf("(%d %X)",i,ch) //ch是个rune类型
//(0 48)(1 44)(2 42)(3 47)(4 5A)(5 4F60)(8 597D)(11 FF01)
}
fmt.Println()
fmt.Println("Rune count:", utf8.RuneCountInString(s)) //获取utf-8数字的个数.//8
//输出字节
bytes :=[]byte(s)
for len(bytes)>0{
ch,size:=utf8.DecodeRune(bytes) //一个字符一个字符拿出来 //字符,长度
bytes=bytes[size:]
fmt.Printf("%c ",ch) //H D B G Z 你 好 !
}
for i,ch := range []rune(s){
fmt.Printf("(%d %c)",i,ch) //(0 H)(1 D)(2 B)(3 G)(4 Z)(5 你)(6 好)(7 !)
}
}
【go】rune类型
最新推荐文章于 2024-09-05 14:05:49 发布