1、把字符串变成字符切片(字符数组):(字符切片以字节为基本单位)
ch := ( []byte)字符串变量; // ch := ([]byte)("li离开"); 占用 2+3+3 = 8个字节
字符切片
li离离离开开开\0离:占用三个字节; 开:占3个字节
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]==larr[1]==i arr[3]==p arr[4]==earr[5]==i arr[6]==华 arr[7 ]==i
lllliiiippppeeeeiiii华华华华!!!!