字符串常用系统函数
1.统计长度
len(str)
2.字符串遍历
r := []rune(str)
例:
func main() {
s := "hello world"
r := []rune(s)
for i := 0; i < len(s); i++ {
fmt.Printf("%c",r[i])
}
}
3.字符串转整数
str := strconv.Atoi(s)
例:
func stringAtoi(s string) {
n, err := strconv.Atoi(s)
if err != nil {
fmt.Println("转换错误:", err)
} else {
fmt.Println("转换成功:", n)
}
}
func main() {
stringAtoi("123")
stringAtoi("1.2")
stringAtoi("hello")
n, _ := strconv.Atoi("hello")//不接收错误时,默认为0
fmt.Println(n)
}
/*
转换成功: 123
转换错误: strconv.Atoi: parsing "1.2": invalid syntax
转换错误: strconv.Atoi: parsing "hello": invalid syntax
0
*/
4.整数转字符串
str := strconv.Itoa(num)
5.字符串转[]byte
bytes := []byte("hello")
注:
- byte 等同于int8,常用来处理ascii字符
- rune 等同于int32,常用来处理unicode或utf-8字符
6.[]byte转字符串
str := string([]byte{97,98,99})
7.10进制转 2,8,16进制
str1 := strconv.FormatInt(num,2)
str2 := strconv.FormatInt(num,8)
str3 := strconv.FormatInt(num,16)
8.查找子串是否在指定字符串中
b := strings.Contains("abcdefg","bcd")//true
9.统计字符串有几个指定的子串
num := strings.Count("abcabcabc","abc")//3
10.不区分大小写的字符串比较
b := strings.EqualFold("abc","ABC")
11.返回子串第一次出现的index,没有则返回-1
index := strings.Index("abcde","c")//2
12.返回子串最后一次出现的index,没有则返回-1
index := strings.LastIndex("abcccd","c")//4
13.替换指定子串
str1 := "hello world"
str2 := strings.Replace(str1, "world", "golang", -1)
//(指定字符串, 换掉的子串, 新的子串, 替换几个 -1表示全部)
14.分割字符串
strArr := strings.Split("aa,bb,cc",",")
15.大小写转换
str1 := strings.ToLower(str)
str2 := strings.ToUpper(str)
16.去字符串左右空格
str := strings.TrimSpace(s)
17.去字符串左右指定字符
str := strings.Trim("**abc**","**")
18.去掉字符串左边/右边字符
str := strings.TrimLeft("**abc**","**")
str := strings.TrimRight("**abc**","**")
19.判断字符串是否以指定字符串开头/结尾
b1 := strings.HasPrefix("abc","a")
b2 := strings.HasSuffix("abc","c")