Go标准库解读-strings

strings

strings包实现了用于操作字符的简单函数
字符串是编程中最常使用的操作之一,其重要性不言而喻,接触过其它编程语言的同学应该也有感触,在Go语言中字符串的操作主要在strings和strconv包中,本位主要介绍strings包。进行过编程开发的都熟悉,字符串的操作主要有:比较,字串,字串的个数,下标,前缀,后缀,字符串转数组[go中切片],数组[go中切片]转字符串,大写,小写,去空格,替换,类型转换[strconv]包中等这些常用操作,按照这样对比着学习,对字符串的学习会事半功倍。
比较 Compare

strings.Compare(a, b string) int
对应结果
大等小
> = <
1 0 -1

包含 strings.Contains

strings.Contains(s, sub string) bool//是否包含全部字串
fmt.Println("vixnick", "via") //false
strings.ContainsAny(s, sub string) bool//包含字串中的任意个字符 Unicode code points
fmt.Println("vixnick", "via") //true
strings.ContainsRune(s string, r rune)//和ContainsAny函数类似  该函数传入rune对应 Unicode code point 一个码值
fmt.Println(strings.ContainsRune("vixname", 97))

相等 strings.EqualFild

完全相等用 ==
"abc" == "abc //true
strings.EqualFild("aBc", "AbC")// true 忽略大小写

数组:Fields/Split

str1 := "1 23 45 67 89 "
fmt.Println(strings.Fields(str1))//[1 23 45 67 89]

str1 := "1 23 45 67 89 ab, cd, 34, a, e, 34a45bv"
f := func (c rune) bool {
    return !unicode.IsNumber(c)
}
fmt.Println(strings.FieldsFunc(str1, f))//[1 23 45 67 89 34 34 45]

Split
func Split(s, sep string)[]string//替换sep
func SplitAfter(s, sep string)[]string
func SplitAfterN(s, sep string, n int)[]string
func SplitN(s, sep string, n int)[]string//替换sep

前缀/后缀 HasPrefix/HasSuffix

func HasPrefix(s, prefix string) bool
func HasSuffix(s, suffix string) bool

下标 Index

func Index(s, substr string) int
func IndexAny(s, chars string) int
func IndexByte(s string, c chars) int
func IndexFunc(s string, f func(rune) bool) int
func IndexRune(s string, r rune) int
func LastIndex(s, substr string) int
func LastIndexAny(s, chars string) int
func LastIndexByte(s string, c byte) int
func LastIndexFunc(s string, f func(rune) bool) int

切片转字符串

slice := []string{"12", "34", "56"}
fmt.Println(strings.Join(slice, "-"))//12-34-56

map

func Map(mapping func(rune) rune, s string) string
遍历s的妹子码点,传入mapping进行操作替换
rot13 := func(r rune) rune {
        switch {
        case r >= 'A' && r <= 'Z':
            return r + 32
        case r >= 'a' && r <= 'z':
            return r - 32
        }
        return r
    }
    fmt.Println(strings.Map(rot13, "'Twas brillig and the slithy gopher..."))
//'tWAS BRILLIG AND THE SLITHY GOPHER...

替换 replace

func Replace(s, old, new string, n int) string//n < 0 等价于ReplaceAll, n>0则替换对应个数
func ReplaceAll(s, old, new string) string

大小写

func ToUpper(s string) string
func ToLower(s string) string

trim

func Trim(s string, cutset string) string
func TrimFunc(s string, f func(rune)bool) string
func TrimLeft(s string, cutset string) string
func TrimLeftFunc(s string, f func(rune)bool) string
func TrimPrefix(s string, cutset string) string
func TrimRight(s string, cutset string) string
func TrimRightFunc(s string, f func(rune)bool) string
func TrimSpace(s string, cutset string) string
func TrimSuffix(s string, cutset string) string

注意:
带函数将码点全部遍历进行函数操作

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