Go语言中的strings包
qingheluo2021-09-11清河洛336
strings包实现了用于操作字符的简单函数判断相同EqualFold(s, t string) bool :判断两个字符串是否相同(不区分大小写)
字符串连接Join(a []string, sep string) string :将一系列字符串连接为一个字符串,之间用sep来分隔
Repeat(s string, count int) string :返回s重复count次的字符串
字符串查找函数:HasPrefix(s, prefix string) bool :判断字符串s是否以prefix开始
HasSuffix(s, suffix string) bool :判断字符串s是否...
strings包实现了用于操作字符的简单函数
判断相同
EqualFold(s, t string) bool :判断两个字符串是否相同(不区分大小写)
字符串连接
Join(a []string, sep string) string :将一系列字符串连接为一个字符串,之间用sep来分隔 Repeat(s string, count int) string :返回s重复count次的字符串
字符串查找函数:
HasPrefix(s, prefix string) bool :判断字符串s是否以prefix开始 HasSuffix(s, suffix string) bool :判断字符串s是否以suffix结尾 Contains(s, substr string) bool :判断字符串s是否包含子串substr ContainsRune(s string, r rune) bool :判断字符串s是否包含utf-8码值r ContainsAny(s, chars string) bool :判断字符串s是否包含字符串chars中的任一字符 Count(s, sep string) int :返回字符串s中有几个不重复的sep子串 Index(s, sep string) int :子串sep在字符串s中第一次出现的索引位置,不存在则返回-1 LastIndex(s, sep string) int :子串sep在字符串s中最后一次出现的位置,不存在则返回-1 IndexByte(s string, c byte) int :字符c在s中第一次出现的索引位置,不存在则返回-1 IndexRune(s string, r rune) int :unicode码值r在s中第一次出现的位置,不存在则返回-1 IndexAny(s, chars string) int :字符串chars中的任一utf-8码值在s中第一次出现的位置,如果不存在或者chars为空字符串则返回-1 LastIndexAny(s, chars string) int :字符串chars中的任一utf-8码值在s中最后一次出现的位置 IndexFunc(s string, f func(rune) bool) int :s中第一个utf-8码值r满足f(r)==true的索引位置,不存在则返回-1 LastIndexFunc(s string, f func(rune) bool) int :s中最后一个满足函数f的unicode码值的位置i,不存在则返回-1
大小写转换
Title(s string) string :返回s中每个单词的首字母都改为标题格式的字符串拷贝 Title用于划分单词的规则不能很好的处理Unicode标点符号 ToLower(s string) string :将所有字母都转为小写 ToUpper(s string) string :将所有字母都转为大写 ToTitle(s string) string :将所有字母都转为对应的标题版本
字符串替换:
Replace(s, old, new string, n int) string :替换字符串中的不重复old字符串为new字符串 n表示替换次数,n<0会替换所有old子串 Map(mapping func(rune) rune, s string) string : 将s的每一个unicode码值r都替换为mapping(r) 并返回这些新码值组成的字符串拷贝 如果mapping返回一个负值,返回字符串对应位置为空
去除前后字符
Trim(s string, cutset string) string :返回将s前后端所有cutset包含的utf-8码值都去掉的字符串 TrimSpace(s string) string :返回将s前后端所有空白字符都去掉的字符串 TrimFunc(s string, f func(rune) bool) string :返回将s前后端所有满足f的unicode码值都去掉的字符串 TrimLeft(s string, cutset string) string :返回将s前端所有cutset包含的utf-8码值都去掉的字符串 TrimLeftFunc(s string, f func(rune) bool) string :返回将s前端所有满足f的unicode码值都去掉的字符串 TrimPrefix(s, prefix string) string :返回去除s的前缀prefix的字符串 TrimRight(s string, cutset string) string :返回将s后端所有cutset包含的utf-8码值都去掉的字符串 TrimRightFunc(s string, f func(rune) bool) string :返回将s后端所有满足f的unicode码值都去掉的字符串 TrimSuffix(s, suffix string) string :返回去除s的后缀suffix的字符串
字符串分隔
Fields(s string) []string :返回将字符串按照空白字符(多个连续空白按一个空白处理)分割的多个字符串切片 FieldsFunc(s string, f func(rune) bool) []string :使用函数f来确定分割符并分隔字符串为切片 Split(s, sep string) []string :返回使用字符串sep分割字符串s的切片,如果sep为空字符,会将s切分单个字符组成的切片 SplitN(s, sep string, n int) []string :同Split,n指定最多分隔多少次 n == 0返回nil n < 0返回单个字符组成的切片 SplitAfter(s, sep string) []string :用从s中出现的sep后面分隔字符串。如果sep为空字符,会将s切分单个字符组成的切片 如打印string.SplitAfter("123456","4")会输出[1234 56] SplitAfterN(s, sep string, n int) []string :同SplitAfter,n指定最多分隔多少次 Cut(s,sep string) (before,after string,found bool):在字符串s的第一个sep处分割,分别存入before和after,如果s中没有sep,则bofore等于s,after为空字符串,found为false
转换为io.Reader
NewReader(s string) *Reader:创建一个从s读取数据的Reader
type Reader struct {} 通过从一个字符串读取数据,实现了io.Reader、io.Seeker、io.ReaderAt、io.WriterTo、io.ByteScanner、io.RuneScanner接口 Len() int:返回字符串还没有被读取的部分的长度 Read(b []byte) (n int, err error) ReadByte() (b byte, err error) UnreadByte() error ReadRune() (ch rune, size int, err error) UnreadRune() error Seek(offset int64, whence int) (int64, error) ReadAt(b []byte, off int64) (n int, err error) WriteTo(w io.Writer) (n int64, err error)