Go语言的源文件仅支持UTF-8和Unicode两种编码格式。出于简化语言的考虑,Go语言多数API都假设字符串以UTF-8编码
1.简介
Go语言中,字符串类型也是一种基础类型。
str = "Hello world" //字符串赋值
ch := str[0] //取字符串第一个字符
2.基本操作
2.1 连接
golang的字符串支持使用 "+" 直接拼接
str := "hello" + "123" //结果为hello123
2.2 求长度
len("Hello") //结果为5
2.3 取字符
s := "Hello"
s[1] //结果为 'e'
2.4 strings包
3.字符串的遍历
3.1 以字节数组遍历
str := "Hello, 世界"
n := len(str)
for i := 0; i < n; i++ {
ch := str[i]
fmt.Println(i, ch)
}
输出结果如下:
0 72
1 101
2 108
3 108
4 111
5 44
6 32
7 228
8 184
9 150
10 231
11 149
12 140
从输出我们可以发现,str字符串长为13,这是因为每个中文字符在UTF-8中占3个字节。
3.2 以Unicode字符遍历
str := "Hello, 世界"
for i, ch := range str {
fmt.Println(i, ch)
}
输出结果如下:
0 72
1 101
2 108
3 108
4 111
5 44
6 32
7 19990
10 30028
以Unicode字符方式遍历时,每个字符类型就是rune,而不是byte。关于rune的操作,可以查询
标准库的Unicode包