如何在 Golang 中拆分字符串?

在 Go 语言中,字符串不同于 Java、C++、Python 等其他语言。它是一个可变宽度字符序列,其中每个字符都使用 UTF-8 编码由一个或多个字节表示。 在 Go 字符串中,可以借助以下函数将字符串拆分为切片。 这些函数是在 strings 包下定义的,因此我们必须在程序中导入 strings 包才能访问这些函数:

split

此函数将字符串拆分为由给定分隔符分隔的所有子字符串,并返回包含这些子字符串的切片。

语法:

funcSplit(str, sep string) []string

这里,str 是字符串,sep 是分隔符。 如果 str 不包含给定的 sep 并且 sep 非空,则它将返回一个长度为 1 的切片,其中仅包含 str。 或者,如果 sep 为空,则它将在每个 UTF-8 序列之后拆分。 或者如果 str 和 sep 都为空,那么它将返回一个空切片。

下面我们看一个示例

package main

import (

"fmt"

"strings"

)

// Main 函数

funcmain() {

// 初始化字符串

str1 := "Welcome, to the, online portal, of jiyik.com"

str2 := "My dog name is Dollar"

str3 := "I like to play Ludo"

// 打印字符串

fmt.Println("String 1: ", str1)

fmt.Println("String 2: ", str2)

fmt.Println("String 3: ", str3)

// 拆分给定字符串

// 使用 split() 方法

res1 := strings.Split(str1, ",")

res2 := strings.Split(str2, "")

res3 := strings.Split(str3, "!")

res4 := strings.Split("", "jiyik.com, jiyik")

// 显示结果

fmt.Println("\nResult 1: ", res1)

fmt.Println("Result 2: ", res2)

fmt.Println("Result 3: ", res3)

fmt.Println("Result 4: ", res4)

}

运行示例

上面示例的输出结果如下

String 1: Welcome, to the, online portal, of jiyik.com

String 2: My dog name is Dollar

String 3: I like to play Ludo

Result 1: [Welcome to the online portal of jiyik.com]

Result 2: [M y d o g n a m e i s D o l l a r]

Result 3: [I like to play Ludo]

Result 4: []

SplitAfter

此函数在给定分隔符的每个实例之后将字符串拆分为所有子字符串,并返回包含这些子字符串的切片。

语法

funcSplitAfter(str, sep string) []string

这里,str 是字符串,sep 是分隔符。 如果 str 不包含给定的 sep 并且 sep 非空,则它将返回一个长度为 1 的切片,其中仅包含 str。 或者,如果 sep 为空,则它将在每个 UTF-8 序列之后拆分。 或者如果 str 和 sep 都为空,那么它将返回一个空切片。

下面我们看一个示例

package main

import (

"fmt"

"strings"

)

// Main 函数

funcmain() {

// 初始化字符串

str1 := "Welcome, to the, online portal, of jiyik.com"

str2 := "My dog name is Dollar"

str3 := "I like to play Ludo"

// 显示字符串

fmt.Println("String 1: ", str1)

fmt.Println("String 2: ", str2)

fmt.Println("String 3: ", str3)

// 拆分给定的字符串

// 使用 SplitAfter() 函数

res1 := strings.SplitAfter(str1, ",")

res2 := strings.SplitAfter(str2, "")

res3 := strings.SplitAfter(str3, "!")

res4 := strings.SplitAfter("", "jiyik.com, jiyik")

// 显示结果

fmt.Println("\nResult 1: ", res1)

fmt.Println("Result 2: ", res2)

fmt.Println("Result 3: ", res3)

fmt.Println("Result 4: ", res4)

}

运行示例

上述示例运行结果如下

String 1: Welcome, to the, online portal, of jiyik.com

String 2: My dog name is Dollar

String 3: I like to play Ludo

Result 1: [Welcome, to the, online portal, of jiyik.com]

Result 2: [M y d o g n a m e i s D o l l a r]

Result 3: [I like to play Ludo]

Result 4: []

SplitAfterN

此函数在给定分隔符的每个实例之后将字符串拆分为所有子字符串,并返回包含这些子字符串的切片。

语法

funcSplitAfterN(str, sep string, m int) []string

这里,str 是字符串,sep 是分隔符,m 用于查找要返回的子字符串数。 这里,如果 m>0,则最多返回m个子串,最后一个子串不会分裂。 如果 m == 0 ,那么它将返回 nil。 如果 m<0,则返回所有子串。

下面我们看示例

package main

import (

"fmt"

"strings"

)

// Main 函数

funcmain() {

// 初始化字符串

str1 := "Welcome, to the, online portal, of jiyik.com"

str2 := "My dog name is Dollar"

str3 := "I like to play Ludo"

// 显示字符串

fmt.Println("String 1: ", str1)

fmt.Println("String 2: ", str2)

fmt.Println("String 3: ", str3)

// 使用 SplitAfterN() 方法拆分给定的字符串

res1 := strings.SplitAfterN(str1, ",", 2)

res2 := strings.SplitAfterN(str2, "", 4)

res3 := strings.SplitAfterN(str3, "!", 1)

res4 := strings.SplitAfterN("", "jiyik.com, jiyik", 3)

// 显示结果

fmt.Println("\nResult 1: ", res1)

fmt.Println("Result 2: ", res2)

fmt.Println("Result 3: ", res3)

fmt.Println("Result 4: ", res4)

}

运行示例

上面示例输出结果如下所示

String 1: Welcome, to the, online portal, of jiyik.com

String 2: My dog name is Dollar

String 3: I like to play Ludo

Result 1: [Welcome, to the, online portal, of jiyik.com]

Result 2: [M y dog name is Dollar]

Result 3: [I like to play Ludo]

Result 4: []

本文转载自:迹忆客(https://www.jiyik.com)

以上是 如何在 Golang 中拆分字符串? 的全部内容, 来源链接: utcz.com/z/290255.html

回到顶部