1、rune相当于go的char:
1-1、使用range 遍历 pos,rune对
1-2、使用utf8.RuneCountInString获得字符数量
1-3、使用len获取字节长度
1-4、使用[]byte获得字节
2、其他字符串操作
2-1、Fields、Split、Join
2-2、Contains、Index
2-3、ToLower、ToUpper
2-4、Trim、TrimRight、TrimLeft
func stringRuneFun() {
s := "月黑见渔灯"
for _,b := range []byte(s){
fmt.Printf("%X ",b)
/*
E6 9C 88 E9 BB 91 E8 A7 81 E6 B8 94 E7 81 AF
*/
}
fmt.Println()
for i,ch := range []byte(s) {
fmt.Printf("(%d %X) ",i,ch)
/*
(0 E6) (1 9C) (2 88) (3 E9) (4 BB) (5 91) (6 E8) (7 A7) (8 81) (9 E6) (10 B8) (11 94) (12 E7) (13 81) (14 AF)
*/
}
fmt.Println()
fmt.Println("Rune count: ",utf8.RuneCountInString(s)) // Rune count: 5
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) // (0 月)(1 黑)(2 见)(3 渔)(4 灯)
}
fmt.Println()
}
func main {
stringRuneFun()
}