go语言之进阶篇字符串操作常用函数介绍

下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档。

一、字符串操作常用函数介绍

1、Contains

1func Contains(s, substr string) bool 2功能:字符串s中是否包含substr,返回bool值 3

示例:

1fmt.Println(strings.Contains("seafood", "foo")) 2 3fmt.Println(strings.Contains("seafood", "bar")) 4 5fmt.Println(strings.Contains("seafood", "")) 6 7fmt.Println(strings.Contains("", "")) 8

执行结果:

1true 2false 3true 4true 5

2、Join

1func Join(a \[\]string, sep string) string 2功能:字符串链接,把slice a通过sep链接起来 

示例:

1s := \[\]string{"foo", "bar", "baz"} 2fmt.Println(strings.Join(s, ", "))

执行结果:

1foo, bar, baz 2

3、Index

1func Index(s, sep string) int 2功能:在字符串s中查找sep所在的位置,返回位置值,找不到返回-1 3

示例:

1 fmt.Println(strings.Index("chicken", "ken")) 2 3 fmt.Println(strings.Index("chicken", "dmr")) 4

执行结果:

14 2-1 3

4、Repeat

1func Repeat(s string, count int) string 2功能:重复s字符串count次,最后返回重复的字符串 3

示例:

1 fmt.Println("ba" + strings.Repeat("na", 2)) 2

执行结果:

1banana 2

 5、Replace

1func Replace(s, old, new string, n int) string 2功能:在s字符串中,把old字符串替换为new字符串,n表示替换的次数,小于0表示全部替换 3

示例:

1fmt.Println(strings.Replace("oink oink oink", "k", "ky", 2)) 2 3fmt.Println(strings.Replace("oink oink oink", "oink", "moo", -1)) 4

执行结果:

1oinky oinky oink 2 3moo moo moo 4

6、Split

1func Split(s, sep string) \[\]string 2功能:把s字符串按照sep分割,返回slice 3

示例:

1fmt.Printf("%q\\n", strings.Split("a,b,c", ",")) 2fmt.Printf("%q\\n", strings.Split("a man a plan a canal panama", "a ")) 3fmt.Printf("%q\\n", strings.Split(" xyz ", "")) 4fmt.Printf("%q\\n", strings.Split("", "Bernardo O'Higgins"))

#执行结果:

1\["a" "b" "c"\] 2\["" "man " "plan " "canal panama"\] 3\[" " "x" "y" "z" " "\] 4\[""\] 5

7、Trim

1func Trim(s string, cutset string) string 2功能:在s字符串的头部和尾部去除cutset指定的字符串 3

示例:

1 fmt.Printf("\[%q\]", strings.Trim(" !!! Achtung !!! ", "! ")) 2

执行结果:

1\["Achtung"\] 2

8、Fields

示例:

1func Fields(s string) \[\]string 2功能:去除s字符串的空格符,并且按照空格分割返回slice 3

执行结果:

1Fields are: \["foo" "bar" "baz"\] 2

 以上应用综合示例:

1package main 2 3import ( 4 "fmt" 5 "strings" 6) 7 8func main() { 9 //"hellogo"中是否包含"hello", 包含返回true, 不包含返回false 10 fmt.Println(strings.Contains("hellogo", "hello")) 11 fmt.Println(strings.Contains("hellogo", "abc")) 12 13 //Joins 组合 14 s := \[\]string{"abc", "hello", "mike", "go"} 15 buf := strings.Join(s, "x") 16 fmt.Println("buf = ", buf) 17 18 //Index, 查找子串的位置 19 fmt.Println(strings.Index("abcdhello", "hello")) 20 fmt.Println(strings.Index("abcdhello", "go")) //不包含子串返回-1 21 22 //重复多少次,这里重复3次 23 buf = strings.Repeat("go", 3) 24 fmt.Println("buf = ", buf) //"gogogo" 25 26 //Split 以指定的分隔符拆分 27 buf = "hello@abc@go@mike" 28 s2 := strings.Split(buf, "@") 29 fmt.Println("s2 = ", s2) 30 31 //Trim去掉两头的字符 32 buf = strings.Trim(" are u ok? ", " ") //去掉2头空格 33 fmt.Printf("buf = #%s#\\n", buf) 34 35 //去掉空格,把元素放入切片中 36 s3 := strings.Fields(" are u ok? ") 37 //fmt.Println("s3 = ", s3) 38 for i, data := range s3 { 39 fmt.Println(i, ", ", data) 40 } 41 42}

执行结果:

1true 2false 3buf = abcxhelloxmikexgo 44 5-1 6buf = gogogo 7s2 = \[hello abc go mike\] 8buf = #are u ok?# 90 , are 101 , u 112 , ok? 12
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Golang中常用的字符串操作

Golang中常用的字符串操作一、标准库相关的Packagegoimport("strings")二、常用字符串操作1.判断是否为空字符串1.1使用“”进行判断思路:直接判断是否等于""空字符串,由于Golang中字符串不能为nil,且为值类型,所以直接与空字符串比较即可。举例:go

盘点Python字符串常见的16种操作方法

大家好,我是Go进阶者,上篇文章给大家介绍了Python字符串,今天给大家分享一些Python字符串的常用操作,一起来看看吧一、常用操作以字符串lstr'welcometoBeijingMuseumitcppsfdsfs'为例,介绍字符常见的操作。<1find检测str是否包含在lstr中,如果是返回开始的索引值,否则返回1。语法:ls