Go语言分割字符串教程

在开发过程中,很多时候我们有分割 的需求,即把一个字符串按照某种分割符进行切割,注意与 的区别。

在 中,分割字符串我们可以分为几种情况,分别为:按空格分割、按字符串分割和按字符分割。

按空格分割字符串

语法

arr := strings.Fields(s)

参数

参数 描述
s 要分割的字符串。

返回值

返回分割后的字符串 。

说明

把字符串 s 按照空格分割后返回的字符串数组,保存在 arr 中。

按字符串分割字符串

语法

arr := strings.Split(s,sep)

参数

参数 描述
s 要分割的字符串。
sep 字符串的分割符。

返回值

返回分割后的字符串 。

说明

把字符串 s 按照字符串 sep 分割后返回的字符串数组,保存在变量 arr 中。

按字符分割字符串

语法

arr := strings.FieldsFunc(s,f func(rune) bool)

参数

参数 描述
s 要分割的字符串。
f 分割的函数。

返回值

返回分割后的字符串 。

说明

把字符串 s 按照字符串按照函数 f 进行分割,分割后返回的字符串数组,保存在变量 arr 中。

案例

按空格分割字符串

使用 strings.Fields 函数,实现按空格分割字符串

package main import ( "fmt" "strings" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") //使用 strings.Fields 函数,实现按空格分割字符串 strHaiCoder := "嗨客网 Hello HaiCoder" strArr := strings.Fields(strHaiCoder) fmt.Println("strArr =", strArr) }

程序运行后,控制台输出如下:

14 golang分隔字符串.png

首先,我们定义了一个字符串变量 strHaiCoder 并赋值,接着我们使用字符串的分割函数 strings.Fields,实现对字符串使用空格进行分割,并使用 print() 函数,打印最终分割的结果。

我们发现打印了三个字符串,即我们实现了按照空格对字符串进行分割的效果。

按字符串分割字符串

使用 strings.Split 函数,实现按字符串分割字符串

package main import ( "fmt" "strings" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") //使用 strings.Split 函数,实现按字符串分割字符串 strHaiCoder := "Hello,HaiCoder Hello,World" strArr := strings.Split(strHaiCoder, "Hello") fmt.Println("strArr =", strArr) }

程序运行后,控制台输出如下:

15 golang分隔字符串.png

首先,我们定义了一个字符串变量 strHaiCoder 并赋值,接着我们使用字符串的分割函数 strings.Split,实现对字符串使用指定的字符串 “Hello” 进行分割,并使用 print() 函数,打印最终分割的结果。

按字符分割字符串

使用 strings.FieldsFunc 函数,实现按字符分割字符串

package main import ( "fmt" "strings" ) func checkSpiltRune(r rune)bool{ if r > 97{ return true } return false } func main() { fmt.Println("嗨客网(www.haicoder.net)") //使用 strings.FieldsFunc 函数,实现按字符分割字符串 strHaiCoder := "Hello,HaiCoder,Hello,World" strArr := strings.FieldsFunc(strHaiCoder, checkSpiltRune) fmt.Println("strArr =", strArr) }

程序运行后,控制台输出如下:

16 golang分隔字符串.png

首先,我们定义了一个字符串变量 strHaiCoder 并赋值,接着我们使用字符串的分割函数 strings.FieldsFunc,实现对字符串使用按照一定的规则进行分割,并使用 print() 函数,打印最终分割的结果。

这里分割函数的第二个参数是一个闭包,参数是 rune 类型,返回值是 bool 类型。如果该闭包返回 true,那么该字符就是分割字符,否则就不是。

Go语言分割字符串总结

在 Go 语言中,分割字符串我们可以分为几种情况,分别为:按空格分割、按字符串分割和按字符分割。Go 语言按空格分割字符串:

arr := strings.Fields(s)

Go 语言按字符串分割字符串语法:

arr := strings.Split(s,sep)

Go 语言按字符分割字符串语法:

arr := strings.FieldsFunc(s,f func(rune) bool)