golang_字符串操作: strings包中Contains,Join,Index,Repeat,Split,Trim,Fields的用法介绍

版权声明:版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/weixin_43851310/article/details/87727291

字符串处理

Contains
func Contains(s, substr string) bool
判断字符串s是否包含子串substr。

Example

fmt.Println(strings.Contains("seafood", "foo")) //true
Join
func Join(a []string, sep string) string
将一系列字符串连接为一个字符串,之间用sep来分隔。

Example

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

查找子串的位置

func Index(s, sep string) int
子串sep在字符串s中第一次出现的位置,不存在则返回-1。

Example

fmt.Println(strings.Index("chicken", "ken")) //4
fmt.Println(strings.Index("chicken", "dmr")) //不包含子串返回-1 
Repeat
func Repeat(s string, count int) string
返回count个s串联的字符串。

Example

fmt.Println("ba" + strings.Repeat("na", 2)) //banana
Split

以指定的分隔符拆分,返回一组切片

func Split(s, sep string) []string  

用去掉s中出现的sep的方式进行分割,会分割到结尾,并返回生成的所有片段组成的切片(每一个sep都会进行一次切割,即使两个sep相邻,也会进行两次切割)。如果sep为空字符,Split会将s切分成每一个unicode码值一个字符串。

Example

fmt.Printf("%q\n", strings.Split("a,b,c", ","))   //%q 输出格式为:带引号的字符串
fmt.Printf("%q\n", strings.Split("a man a plan a canal panama", "a "))
fmt.Printf("%q\n", strings.Split(" xyz ", ""))
fmt.Printf("%q\n", strings.Split("", "Bernardo O'Higgins"))

Output:

["a" "b" "c"]
["" "man " "plan " "canal panama"]
[" " "x" "y" "z" " "]
[""]   //若分隔符在原字符串中不存在,返回原字符串切片
Trim

去掉两端的字符

func Trim(s string, cutset string) string

返回将s前后端所有cutset包含的utf-8码值都去掉的字符串。

Example

fmt.Println(strings.Trim(" !!! Achtung! Achtung! !!! ", "! ")) 
//会去掉字符串两端所有的"!"和" "

Output:

Achtung! Achtung
Fields

去掉空格,把元素放入切片中

func Fields(s string) []string

返回将字符串按照空白(unicode.IsSpace确定,可以是一到多个连续的空白字符)分割的多个字符串。如果字符串全部是空白或者是空字符串的话,会返回空切片。

Example

fmt.Printf("Fields are: %q", strings.Fields("  foo bar  baz   "))

Output:

Fields are: ["foo" "bar" "baz"]

猜你喜欢

转载自blog.csdn.net/weixin_43851310/article/details/87727291