Go字符串处理

常用字符串处理函数

函数 作用
strings.TrimSpace(str) 去除字符串str两边的空格
strings.Trim(str, "指定字符") 将字符串str两边的指定字符去除
strings.TrimLeft(str, "指定字符") 将字符串左边的指定字符去除
strings.TrimRight(str, "指定字符") 将字符串右边的指定字符去除
strings.HasPrefix(str, "指定字符") 判断字符串是否以指定字符开头
strings.HasSuffix(str, "指定字符") 判断字符串是否以指定字符结尾
strings.Compare(str1, str2) 比较两个字符串大小
strings.Index(str, "子串") 返回子串出现的第一个位置
strings.LastIndex(str, "子串") 返回子串出现的最后一个位置
strings.Count("abcabcabababc", "abc") 统计子串在整体当中出现的次数
strings.Repeat("abc", 10) 将字符串重复指定的次数
strings.Replace(str, "a", "b", -1) 替换字符串中的部分子串
strings.Split(str, ",") 分割字符串
strings.Join(slice, ",") 字符串拼接

字符串长度

package main

import (
	"fmt"
)

func main() {
	str := "hello世界"
	fmt.Println(len(str))         //输出11,一个汉字需要3个字节编码
	fmt.Println(len([]rune(str))) //输出7,rune表示单个Unicode字符
}

字符串转整数或浮点数

strconv.ParseInt(),可以指定转换的进制,以及返回的bit位数
strconv.Atoi(),默认按10进制转换,返回int型
strconv.ParseFloat(),可指定返回的bit位数

整数或浮点数转字符串

strconv.FormatInt()
strconv.Itoa()
strconv.FormatFloat()

字符串和bool型转换

strconv.ParseBool()
strconv.FormatBool()

字符串拼接的性能

字符串拼接常用的几种方式:

(1)使用strings.Builder:建议使用
(2)使用bytes.Buffer:性能好,可读性差
(3)使用copy
(4)使用append
(5)使用+号:性能居中,可读性好
(6)使用strings.Repeat:适合合并大量重复的字符串
(7)使用string.Join:性能较好
(8)使用fmt.Sprintf:性能较差