package main
import (
"fmt"
"unicode"
)
// HanCount 计算汉字个数
func HanCount(s string) uint64 {
var count uint64
for _, c := range s {
if unicode.Is(unicode.Han, c) {
count++
}
}
return count
}
func main() {
s1 := "我们"
// s1[0] = "你" // cannot assign to s1[0] (value of type byte)
// s1[0] = '你' // cannot assign to s1[0] (value of type byte)
s2 := []rune(s1) //把字符串强制转换成一个rune切片
// s2[0] = "你" // cannot use "你" (untyped string constant) as rune value in
s2[0] = '你'
fmt.Println(s2) //是unicode 编码
fmt.Println(string(s2)) //把rune切片转换为字符串
//计算字符串中的汉字的个数
s3 := "我爱你,中国5201314"
fmt.Println(s3)
fmt.Println(HanCount(s3))
s4 := "我" //s4:string
s5 := '我' //s5:int32
fmt.Printf("s4:%T s5:%T\n\n", s4, s5)
s6 := "Hello,中国" //一个汉字占3个字节
for i, v := range s6 {
fmt.Printf("%d %c # %v %v\n", i, v, i, v)
}
}