本篇主要总结了go中标准库中处理字符串的常用方法
查找 🔗
- 判断字符串是否包含子串:Contains(s,substr string) bool
- 获取子串再字符串中第一次出现的位置,没有出现返回-1 Index(s,substr string) int
- 获取子串再字符串中最后一次出现的位置,没有出现返回-1 LastIndex(s,substr string) int
- HasPrefix(s, prefix string) bool 判断字符串是否存在prefix前缀
- HasSuffix(s, suffix string) bool 判断字符串是否存在suffix后缀
替换 🔗
- Replace(str,old,new string,n int) string 替换字符串中n个老字符串为new字符串,如果n<0会 替换全部,并返回替换后的字符串
- Map(mapping func(rune)rune ,s string) string 替换s中的每一个unicode码值都会被mapping函数内部逻辑替换,如果mapping 返回负值将不会处理该码值
比较 🔗
- EqualFold(s, t string) bool 比较字符串s和t,不区分大小写
拆分 🔗
- Fields(s string) []string 通过字符串中的空白字符分割,并返回切片
- FieldsFunc(s string, f func(rune) bool) []string 自定义函数逻辑控制分隔逻辑
- Split(s,sep string)[]string 通过去掉s中的sep字符串进行分隔,返回切片
- SplitN(s,sep string,n int) []string 效果同split,n控制返回的切片数量
- SplitAfter(s,sep string) []string 在sep后面进行分隔,不会去除sep
- func SplitAfterN(s, sep string, n int) []string 同splitAfter,n控制返回的切片数量
拼接 🔗
- Join(a []string,sep string)string ,将一个字符串切片用sep连接,并返回一个字符串
修剪 🔗
- Trim(s string, cutset string) string 修剪s两头cutset字符
- TrimSpace(s string) string 去除s两头的空白
- TrimLeft 去除s左边指定字符
- TrimRight 去除s右边指定字符
- TrimPrefix 去除字符串可能存在的前缀
- TrimSuffix 去除字符串可能存在的后缀
变换 🔗
- ToUpper(s string) string 将所有字符转换为大写字母的拷贝
- ToLower(s string) string 将所有字符转换为小写字母的拷贝
快速实现io.Reader接口实例 🔗
strings.NewReader(s string) *Reader 创建一个从s读取数据的Reader指针 func (r *Reader) Read(b []byte) (n int, err error) 实现了io.Reader,通过设置的字节长度获取数据
for {
_, err := reader.Read(bytes)
if err!=nil {
return
}
fmt.Println("bytes===",string(bytes))
}
如有遗漏欢迎批评指正