字符串
PPG007 ... 2021-12-26 Less than 1 minute
# 字符串
字符串常用操作:
len(str):求长度。
fmt.Println("字符串的长度:", len(str))
1+
或fmt.Sprintf
:拼接字符串。fmt.Println(fmt.Sprintf("%s%s", str, str))
1strings.Split
:分割。fmt.Println(strings.Split(str, ","))
1strings.Contains
:判断是否包含。fmt.Println(strings.Contains(str, "芜湖"))
1strings.HasPrefix,strings.HasSuffix
:前缀后缀判断。fmt.Println(strings.HasPrefix(str, "这"), strings.HasSuffix(str, ","))
1strings.Index(),strings.LastIndex
:子串出现的位置。fmt.Println(strings.Index(str, ","))
1strings.Join
:符号连接。fmt.Println(strings.Join(strings.Split(str, ","), "-"))
1
Go 语言中字符有两种:uint8 类型,代表 ASCII 的一个字符,rune 类型,代表一个 UTF-8 字符。
字符串底层是一个 byte 数组,字符串的长度就是 byte 字节的长度。
遍历字符串:
for _, c := range str {
fmt.Printf("%c\n", c)
}
1
2
3
2
3
如果字符串只有 ASCII 字符:
for i := 0; i < len(str); i++ {
fmt.Printf("%c\n", str[i])
}
1
2
3
2
3
修改字符串:要修改字符串需要先转为 rune 或 byte 数组,修改完成后再转换为 string,无论哪种转换都会重新分配内存并复制字节数组。
str := string("这,是,一,段,字,符,串,")
runeArray := []rune(str)
runeArray[6] = '个'
fmt.Println(string(runeArray))
1
2
3
4
2
3
4