注册 登录

清河洛

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)


网址导航