Golang 拆分为多个子字符串
在Go编程语言中,子字符串是从原始字符串中包含一系列字符的一部分字符串。在Go中,可以使用切片语法在字符串值上获得子字符串。 strings.split()函数可以在Go(Golang)中用来将字符串分割成子字符串。函数的第一个输入是要拆分的字符串,第二个参数是用来分隔子字符串的分隔符。函数的结果是包含子字符串的字符串切片。还有其他方法可以将字符串拆分成多个子字符串。
方法1:使用strings.Split()函数
在这种方法中,我们将使用内置的strings.split()函数将字符串拆分成多个子字符串,该函数的功能如下所述。在这里,该函数将把字符串划分为单词,并采用for循环对这些单词进行迭代以打印子字符串。
语法
func Split(str, sep string) []string
Split() 函数用于通过提供的分隔符拆分字符串。此函数存在于字符串包中,它接受要拆分的字符串作为参数以及一个分隔符。然后,该函数将返回最终的字符串数组作为结果。
步骤
- 步骤1 − 在程序中创建一个包main,并声明fmt(format package)和strings包,其中main生成可执行示例,fmt用于格式化输入和输出。
-
步骤2 − 创建一个main函数,并在该函数中创建要分割的字符串,并赋值给名为mystr的变量。
-
步骤3 − 使用Split()函数将字符串分割成子字符串,提供字符串和分隔符作为参数。
-
步骤4 − 使用for循环遍历子字符串,然后使用fmt.Println()函数逐个输出每个子字符串。
-
步骤5 − 应注意,此技术假设字符串的分隔符是单个空格字符。如果您希望使用不同的分隔符拆分字符串,可以更改提供给strings的参数,然后相应地使用Split()函数。
示例
在以下示例中使用split函数。
package main
import (
"fmt"
"strings"
)
func main() {
mystr := "Hello, alexa!" //create a string
fmt.Println("The string given here is:", mystr)
substrings := strings.Split(mystr, " ") //split the string into substrings using the built-in function split
fmt.Println("The creation of substrings is reflected here:")
for _, substring := range substrings {
fmt.Println(substring) //run a for loop to print substrings
}
}
输出
The string given here is: Hello, alexa!
The creation of substrings is reflected here:
Hello,
alexa!
方法2:使用strings.Index()函数
在这种方法中,字符串将使用内置的strings.Index()函数拆分为多个子字符串。使用strings,该程序重复利用while循环来确定字符串.Index()中分隔符的索引。
语法
strings.Index()
在Golang中,可以使用字符串来将一个字符串分割成子字符串。函数的第一个输入是要拆分的字符串,第二个参数是用于分隔子字符串的分隔符。函数的结果是包含子字符串的字符串切片。
步骤
- 步骤1 - 创建一个main包,并在程序中声明fmt(格式化包)和strings包,其中main用于生成可执行示例,fmt用于格式化输入和输出。
-
步骤2 - 创建一个main函数,在该函数中创建带有指定分隔符和要拆分的字符串的变量mystr。
-
步骤3 - 将变量start value的值设置为0。
-
步骤4 - 建立一个while循环,并使用strings.Index()函数获取从start value开始的str子字符串中分隔符的索引。如果结束值为-1,则退出循环。
-
步骤5 - 将end值添加到start值上,并使用strings找到start和end之间的子字符串。
-
步骤6 - 通过添加len和end(分隔符)来修改start值。
-
步骤7 - 重复步骤3到9,直到结束为-1。
-
步骤8 - 使用start作为起始点,从mystr中提取剩余的子字符串。
-
步骤9 - 使用fmt.Println()函数将子字符串打印到控制台上,其中ln表示换行。
示例
在这个示例中,我们将使用string.index()函数。
package main
import (
"fmt"
"strings"
)
func main() {
mystr := "Hello, alexa!" //create a string
fmt.Println("The string created here is:", mystr)
fmt.Println("The string after being converted to substring is:")
delimiter := " "
start := 0
for {
end := strings.Index(mystr[start:], delimiter)
if end == -1 {
break
}
end += start
substring := mystr[start:end]
fmt.Println(substring)
start = end + len(delimiter) //transform the start value
}
substring := mystr[start:]
fmt.Println(substring) //print the substring
}
输出
The string created here is: Hello, alexa!
The string after being converted to substring is:
Hello,
alexa!
结论
我们使用了两个不同的示例来执行将字符串分割成多个子字符串的程序。我们在这两个示例中使用了内置函数。在第一个示例中,我们使用了strings.Split()函数,在第二个示例中,我们使用了strings.Index()函数。
极客笔记