1、把字符串变成字符切片(字符数组):(字符切片以字节为基本单位)
ch := ( []byte)字符串变量; // ch := ([]byte)("li离开"); 占用 2+3+3 = 8个字节
l | i | 离 | 离 | 离 | 开 | 开 | 开 | \0 |
---|
2、遍历字符串:
for i , ch := range varString{ // ch is a rune 类型(int32) }
如: s := “lipei华!”; //共占用9个字节;
(0 Unicode-l)(1 Unicode-i)(2 Unicode-p)(3 Unicode-e)(4 Unicode-i)(5 Unicode编码-华,占3字节) (8 Unicode- !)
3、获取字符串中字符的个数:utf8.RUneCountInString("六号li"); // 字符的个数是:4个
utf8.DecodeRune(p []byte)-- 解码字符切片p中的第一个字符,返回解码后的字符对应的int32(rune)和被解码的字符占用的字节数
4、直接把字符串转换成int32切片:
格式: s := []rune("lipei华!");
每个字符使用四个字节(int32)来表示;避免出现乱码的问题
arr[0]==l | arr[1]==i | arr[3]==p | arr[4]==e | arr[5]==i | arr[6]==华 | arr[7 ]==i |
l | l | l | l | i | i | i | i | p | p | p | p | e | e | e | e | i | i | i | i | 华 | 华 | 华 | 华 | ! | ! | ! | ! |