字符串
常用的系统函数
1、统计字符串的长度,按字节len(str)
// golang的编码统一为utf-8(ASCII的字符(字母和数字)占一个字节,中文占3个字节)
var str = "xiao浩"
fmt.Println(len(str))
2、字符串遍历,同时处理有中文的问题
// 方式一
r := []rune(str)
for i := 0; i < len(r); i++ {
fmt.Printf("%c\n",r[i])
}
// 方式二
for _, val := range str {
fmt.Printf("%c\n", val)
}
3、字符串转整数
n, err := strconv.Atoi("123")
if err != nil {
fmt.Println("转换失败", err)
} else {
fmt.Println(n)
}
4、整数转字符串
str = strconv.Itoa(123)
fmt.Println(str)
5、字符串转[]byte
var bytes = []byte("xiaohao")
fmt.Printf("%v\n", bytes) // [120 105 97 111 104 97 111]
6、[]byte转字符串
str = string([]byte{97, 98})
fmt.Printf("%v\n", str) // ab
7、10进制转2, 8, 16进制
str = strconv.FormatInt(10, 2) // 2指2进制
fmt.Printf("%v\n", str) // 1010
8、查找子串是否在指定的字符串中
b := strings.Contains("xiaohao", "hao")
fmt.Printf("%v\n", b) // true
9、统计一个字符串有几个指定的子串
count := strings.Count("xiaohao", "o")
fmt.Printf("%v\n", count) // 2
10、不区分大小写的字符串比较(==是区分字母大小写的)
eq := strings.EqualFold("hao", "Hao")
fmt.Printf("%v\n", eq) // true
11、返回子串在字符串第一次出现的index值,如果没有返回-1
index := strings.Index("xiaohao", "hao")
fmt.Printf("%d\n", index) // 4
12、返回子串在字符串最后一次出现的index,如没有返回-1
index = strings.LastIndex("xiaohao", "a")
fmt.Printf("%d\n", index) // 5
13、将指定的子串替换成另外一个子串
# 第一种方式Replace
str2 := "hello 小浩"
str2 = strings.Replace(str2, "小浩", "hao", 1) // 如果n=-1表示全部替换
fmt.Printf("%v\n", str2) // hello hao
# 第二种方式ReplaceAll 全部替换
str2 := "hello 小浩"
str2 = strings.ReplaceAll(str2, "ll", "oo")
fmt.Printf("%v\n", str2) // heooo 小浩
14、按照指定的某个字符,为分割标识,将一个字符串拆分成字符串数组
strArr := strings.Split("hello,world", ",")
fmt.Printf("%v\n", strArr) // [hello world]
15、将字符串的字母进行大小写的转换
str = "xiaohao"
str = strings.ToUpper(str) // 大写
fmt.Printf("%v\n", str) // XIAOHAO
str = strings.ToLower(str) // 小写
fmt.Printf("%v\n", str) // xiaohao
16、将字符串左右两边的空格去掉
str = " xiao hao "
str = strings.TrimSpace(str)
fmt.Printf("%v\n", str) // xiao hao
17、将字符串左右两边指定的字符去掉
str = " !xiao ! hao! "
str = strings.Trim(str, " !")
fmt.Printf("%v\n", str) // xiao ! hao
18、将字符串左边指定的字符去掉
str = "!xiao hao!"
str = strings.TrimLeft(str, "!")
fmt.Printf("%v\n", str) // xiao hao!
19、将字符串右边指定的字符去掉
str = "!xiao hao!"
str = strings.TrimRight(str, "!")
fmt.Printf("%v\n", str) // !xiao hao
20、判断字符串是否以指定的字符串开头
str = "xiaohao"
b = strings.HasPrefix(str, "xi")
fmt.Printf("%v\n", b) // true
21、判断字符串是否以指定的字符串结尾
str = "xiaohao"
b = strings.HasSuffix(str, "xi")
fmt.Printf("%v\n", b) // false