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:性能较差