七叶笔记 » golang编程 » golang基础之字符串

golang基础之字符串

一、golang之string基本特性

1.string是所有 8位字节 字符串 的集合,通常但不一定代表UTF-8 编码 的文本

2.字符串可能为空,但是不能为 nil

3.字符串类型的值是不可变的

二、string之底层结构

type stringStruct struct {

str unsafe.Pointer // 指向一个 [len]byte 的数组

len int //字符串长度

}

可以看到str其实是个指针,指向某个数组的首地址,另一个字段是len长度。

三、字符串连接

1.+

2.strings.Join

3.fmt.Sprintf

4. bytes .Buffer

5.strings.Builder (go1.10+)

四、字符串处理的相关标准库

1.strings,字符串基本操作封装,但是缺少startswith,endswitch,substring之类的方法

2.strconv,字符串转换相关

五、字符串输出格式化

六、字符串遍历

1.常规遍历,for+索引方式,该方式按照字节遍历,可能会存在乱码,遍历的是ascii字符

2.for-range遍历,按字符遍历,不会存在乱码,遍历unicode字符

七、字符串长度求值

1、如果全是ascii,可以直接使用len方法

2.如果包含汉字,需要转成[]rune,再使用len方法

3.如果包含汉字,也可以使用utf8.RuneCountInString计算

相关文章