Golang中的字符串处理总结

Count(s string, str string) int函数

    计算字符串str在s中的非重叠个数。若是str为空串则返回s中的字符(非字节)个数+1。编码

Index(s string, str string) intspa

    返回子串str在字符串s中第一次出现的位置。若是找不到则返回-1;若是str为空,则返回0。code

LastIndex(s string, str string) int字符串

    返回子串str在字符串s中最后一次出现的位置。若是找不到则返回-1;若是str为空则返回字符串s的长度。string

IndexRune(s string, r rune) intit

    返回字符r在字符串s中第一次出现的位置。若是找不到则返回-1。ast

IndexAny(s string, str string) intim

    返回字符串str中的任何一个字符在字符串s中第一次出现的位置。若是找不到或str为空则返回-1co

LastIndexAny(s string, str string) int

    返回字符串str中的任何一个字符在字符串s中最后一次出现的位置。若是找不到或str为空则返回-1。

Contains(s string, str string) bool

    判断字符串s中是否包含个子串str。包含或者str为空则返回true。

ContainsAny(s string, str string) bool

    判断字符串s中是否包含个子串str中的任何一个字符。包含则返回true,若是str为空则返回false。

ContainsRune(s string, r rune) bool

    判断字符串s中是否包含字符r。

SplitN(s, str string, n int) []string

    以str为分隔符,将s切分红多个子串,结果中**不包含**str自己。若是str为空则将s切分红Unicode字符列表。若是s中没有str子串,则将整个s做为[]string的第一个元素返回。参数n表示最多切分出几个子串,超出的部分将再也不切分,最后一个n包含了全部剩下的不切分。若是n为0,则返回nil;若是n小于0,则不限制切分个数,所有切分。

SplitAfterN(s, str string, n int) []string

    以str为分隔符,将s切分红多个子串,结果中**包含**str自己。若是str为空,则将s切分红Unicode字符列表。若是s 中没有str子串,则将整个s做为 []string 的第一个元素返回。参数n表示最多切分出几个子串,超出的部分将再也不切分。若是n为0,则返回 nil;若是 n 小于 0,则不限制切分个数,所有切分。

Split(s, str string) []string

    以str为分隔符,将s切分红多个子切片,结果中**不包含**str自己。若是str为空,则将s切分红Unicode字符列表。若是s中没有str子串,则将整个s做为[]string的第一个元素返回。

SplitAfter(s, str string) []string

    以str为分隔符,将s切分红多个子切片,结果中**包含**str自己。若是 str 为空,则将 s 切分红Unicode字符列表。若是s中没有str子串,则将整个s做为[]string的第一个元素返回。

Fields(s string) []string

    以连续的空白字符为分隔符,将s切分红多个子串,结果中不包含空白字符自己。空白字符有:\t, \n, \v, \f, \r, ’ ‘, U+0085 (NEL), U+00A0 (NBSP) 。若是 s 中只包含空白字符,则返回一个空列表。

FieldsFunc(s string, f func(rune) bool) []string

    以一个或多个知足f(rune)的字符为分隔符,将s切分红多个子串,结果中不包含分隔符自己。若是s中没有知足f(rune)的字符,则返回一个空列表。

Join(s []string, str string) string

    将s中的子串链接成一个单独的字符串,子串之间用str分隔。

HasPrefix(s string, prefix string) bool

    判断字符串s是否以prefix开头。

HasSuffix(s, suffix string) bool

    判断字符串s是否以prefix结尾。

Map(f func(rune) rune, s string) string

    将s中知足f(rune)的字符替换为f(rune)的返回值。若是f(rune)返回负数,则相应的字符将被删除。

Repeat(s string, n int) string

    将n个字符串s链接成一个新的字符串。

ToUpper(s string) string

    将s中的全部字符修改成其大写格式。对于非ASCII字符,它的大写格式须要查表转换。

ToLower(s string) string

    将s中的全部字符修改成其小写格式。对于非ASCII字符,它的小写格式须要查表转换。

ToTitle(s string) string

    将s中的全部字符修改成其Title格式,大部分字符的Title格式就是Upper格式,只有少数字符的Title格式是特殊字符。这里的ToTitle主要给Title函数调用。

TrimLeftFunc(s string, f func(rune) bool) string

    删除s头部连续的知足f(rune)的字符。

TrimRightFunc(s string, f func(rune) bool) string

    删除s尾部连续的知足f(rune)的字符。

TrimFunc(s string, f func(rune) bool) string

    删除s首尾连续的知足f(rune)的字符。

IndexFunc(s string, f func(rune) bool) int

    返回s中第一个知足f(rune) 的字符的字节位置。若是没有知足 f(rune) 的字符,则返回 -1

LastIndexFunc(s string, f func(rune) bool) int

    返回s中最后一个知足f(rune)的字符的字节位置。若是没有知足 f(rune) 的字符,则返回 -1。

Trim(s string, str string) string

    删除s首尾连续的包含在str中的字符。

TrimLeft(s string, str string) string

    删除s头部连续的包含在str中的字符串。

TrimRight(s string, str string) string

    删除s尾部连续的包含在str中的字符串。

TrimSpace(s string) string

    删除s首尾连续的的空白字符。

TrimPrefix(s, prefix string) string

    删除s头部的prefix字符串。若是s不是以prefix开头,则返回原始s。

TrimSuffix(s, suffix string) string

    删除s尾部的suffix字符串。若是s不是以suffix结尾,则返回原始s。(只去掉一次,注意和TrimRight区别)

Replace(s, old, new string, n int) string

    返回s的副本,并将副本中的old字符串替换为new字符串,替换次数为n次,若是n为-1,则所有替换;若是 old 为空,则在副本的每一个字符之间都插入一个new。EqualFold(s1, s2 string) bool:比较UTF-8编码在小写的条件下是否相等,不区分大小写,同时它还会对特殊字符进行转换。好比将“ϕ”转换为“Φ”、将“DŽ”转换为“Dž”等,而后再进行比较。“==”比较字符串是否相等,区分大小写,返回bool。

Compare(s1 string, s2 string) int1

    比较字符串,区分大小写,比”==”速度快。相等为0,不相等为-1。

相关文章
相关标签/搜索