虽然我们可以通过官网去查询想函数,但一些常用的函数日常开发中还是需要熟练的。下面我们来看下go语言中字符串相关的常用函数
- 按字节统计字符串长度:len(str)
- 按字符遍历字符串,同时处理有中文的问题:r := []rune(str),这个方法前面的文章也有讲到
- 字符串转整数:n, err := strconv.Atoi(“123”)
- 整数转字符串:str := strconv.Itoa(123)
- 字符串转byte切片:var bytes = []byte(str)
- byte切片转字符串:str := string([]byte{97, 98, 99}) // 97, 98, 99是对应的ascii码值
- 10进制转2,8,16进制:str := strconv.FormatInt(123, 2),转2进制,输出对应的字符串
- 判断子串是否在指定字符串中:b := strings.Contains(“mylearning”, “my”), 返回true or false
- 判断子串出现了几次:num := strings.Count(“hhhhaaha”, “ha”)
- 不区分大小写判断字符串是否相等(区分直接用==判断):strings.EqualsFold(“abx”, “ABX”),返回bool
- 返回子串第一次出现的index值:strings.Index(“lzs go”, “go”),下标从0开始,这里为4
- 返回子串最后一次出现的index:strings.LastIndex(“hello, lzs, go”, “go”)
- 替换字符串,strings.Replace(“hello, go”, “go”, “c++”, 1),这里把替换成c++,1表示替换1个,换多个写多个的数量,如果全替换,用-1;
- 按指定的字符进行分割,将字符串拆分为字符串数组:Strings.Split(“hello, lzs, go”, “,”),会拆分成hello, lzs,go三个值,形成一个数组返回
- 字符串的大小写转换:strings.ToLower(“Go”),strings.ToUpper(“abc”)
- 去掉字符串双端的空格:strings.TrimSpace(" hello, let’s learn go ")
- 去除字符串双端指定字符:strings.Trim(" hells, afjdkljf ,“, “,”),这个表示去掉左右两边逗号,如果我们想去掉空格和逗号,不用写两遍,直接加个空格strings.Trim(” hells, afjdkljf ,“, " ,”)
- 去除左边的指定字符:strings.TrimLeft(str, “x”)
- 去除右边指定字符:strings.TrimRight(str, “x”)
- 判断字符串是否以指定字符串开头:strings.HasPrefix(str, pre)
- 判段字符串是否以指定字符串结束:strings.HasSuffix(str, suffix)