「Go」Golang中的字符串处理

转自https://my.oschina.net/u/3625745/blog/3007674
以便查阅

Count(s string, str string) int

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

Index(s string, str string) int

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

LastIndex(s string, str string) int

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

IndexRune(s string, r rune) int

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

IndexAny(s string, str string) int

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

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。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270