字符
ASCII码字符(uint8型 或 byte型)
定义
var b byte = '1'
输出
数字大小:
fmt.Printf("%v", b)
49
对应字符:
fmt.Printf("%c", b)
1
UTF-8字符(rune型 或 int32型)
定义
var r rune = '好'
输出
数字大小:
fmt.Printf("%v", r)
22909
对应字符:
fmt.Printf("%c", r)
好
字符串
定义
s := "这是一条用来测试的字符串"
获取长度
sl := len(s)
拼接字符串
s1 := "你好," + s
或
s2 := fmt.Sprintf("%s%s", "你好,", s)
字符串分割
s3 := strings.Split(s, "的")
[这是一条用来测试 字符串]
是否包含
s4 := strings.Contains(s, "的")
也可用来测试子串是否被包含
s4 := strings.Contains(s, "的字符串")
判定开头(匹配开头字符串)
s5 := strings.HasPrefix(s, "这")
判定结尾(匹配结尾字符串)
s6 := strings.HasSuffix(s, "测")
获取元素第一次出现的索引
s7 := "AAABBCCCC"
s8 := strings.Index(s7, "A")
参数为一个子串也可
s8 := strings.Index(s7, "AA")
若不存在返回-1
获取元素最后一次出现的索引
s7 := "AAABBCCCC"
s9 := strings.LastIndex(s7, "A")
参数为一个子串也可
s9 := strings.LastIndex(s7, "AA")
若不存在返回-1
修改字符串
- 要修改字符串,需要先将其转换成
[]rune或[]byte
,完成后再转换为string
。 - 无论哪种转换,都会重新分配内存,并复制字节数组。
byteS1 := []rune(s)
byteS1[0] = 'H'
s10 := string(byteS1)