一架梯子,一头程序猿,仰望星空!

golang 字符串操作


go语言的strings包实现了处理字符串的简单函数,例如:字符串搜索、字符串分割、裁剪等等。

下面介绍常用的字符串操作函数

1.Contains

函数定义:

func Contains(s, substr string) bool

判断字符串s是否包含子串substr。

例子:

fmt.Println(strings.Contains("seafood", "foo"))
fmt.Println(strings.Contains("seafood", "bar"))
fmt.Println(strings.Contains("seafood", ""))
fmt.Println(strings.Contains("", ""))

输出:

true
false
true
true

2.Count

函数定义:

func Count(s, sep string) int

返回字符串s中有几个不重复的sep子串

例子:

// 输出:3, 字符e,在cheese中出现3次
fmt.Println(strings.Count("cheese", "e"))

3.Index

函数定义:

func Index(s, sep string) int

字符串查找函数,含义是子串sep在字符串s中第一次出现的位置,不存在则返回-1

例子:

fmt.Println(strings.Index("chicken", "ken"))
fmt.Println(strings.Index("chicken", "dmr"))

输出:

4
-1
LastIndex函数的作用和用法跟Index类似,区别是LastIndex返回最后一个匹配到的子字符串,不存在则返回-1。

4.字符串转换成大写字母

s := strings.ToUpper("Gopher")

5.字符串转换成小写字母

s := strings.ToLower("Gopher")

6.Trim

函数定义:

func Trim(s string, cutset string) string

将s字符串前后位置的所有cutset字符都去掉,例如,去掉字符串前后的空格, 第二个参数就是我们要去掉的字符

s := strings.Trim(" www.tizi365.com    ", " ")

7.TrimSpace

将s前后端所有空白(unicode.IsSpace指定)都去掉的字符串。

fmt.Println(strings.TrimSpace(" \t\n a lone gopher \n\t\r\n"))

输出:

a lone gopher

8.Replace

函数定义:

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

将s中前n个不重叠old子串都替换为new的新字符串,如果n<0会替换所有old子串。

例子:

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

输出:

oinky oinky oink
moo moo moo

9.Split

函数定义:

func Split(s, sep string) []string

用sep字符串去切割s字符串,最后返回一个切割后的字符串数组

例子:

fmt.Printf("%q\n", strings.Split("a,b,c", ","))

输出:

["a" "b" "c"]

10.Join

函数定义:

func Join(a []string, sep string) string

将一系列字符串连接为一个字符串,字符串之间用sep来分隔,Join函数就是Split函数的反向操作。

例子:

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

输出:

foo, bar, baz