Golang程序 分割成若干子串
在Go编程语言中,子串是一个字符串的一部分,它包含了原始字符串中的一系列字符。在Go中可以通过在字符串值上使用切片语法来获得一个子串,字符串。Split()可以在Go(Golang)中用来将一个字符串分割成子串。该函数的第一个输入是要分割的字符串,第二个参数是用来分隔子串的分隔符。该函数的结果是一个包含子串的字符串片断。还有其他方法可以将一个字符串分割成若干个子串。
方法1:使用strings.Split()函数
在这种方法中,我们将使用内置函数strings.split()将字符串分割成若干个子字符串,其功能描述如下。在这里,这个函数将把字符串分成若干个词,一个for循环将在这些词上进行迭代,以打印出子串。
语法
func Split(str, sep string) []string
Split() 函数用于通过提供的分隔符来分割一个字符串。这个函数存在于strings包中,它接受要分割的字符串和分隔符作为一个参数。然后,该函数返回最终的字符串数组作为结果。
算法
- 第1步 – 创建一个包main,并在程序中声明fmt(format package)和strings包,其中main产生可执行实例,fmt帮助格式化输入和输出。
-
第2步 – 创建一个函数main,并在该函数中创建要分割的字符串到一个名为mystr的变量。
-
第 3步 – 要将一个字符串分割成子串,使用Split()函数,提供字符串和分隔符作为参数。
-
第4步 – 使用for循环遍历子串,然后使用fmt.Println()函数逐一输出每个子串。
-
第5步 – 应该注意的是,这种技术假设字符串的分隔符是一个空格字符。如果你希望使用不同的分隔符来分割字符串,应相应地改变提供给字符串的参数 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()函数分割成若干个子字符串。使用字符串,这个程序反复利用一个while循环来确定string.Index()中分隔符的索引。
语法
strings.Index()
在Golang中,可以使用字符串来将一个字符串分割成子串。该函数的第一个输入是要分割的字符串,第二个参数是用来分隔子串的定界符。该函数的结果是一个包含子串的字符串片断。
算法
- 第1步 – 创建一个包main,并在程序中声明fmt(格式包)和strings包,其中main产生可执行的例子,fmt帮助格式化输入和输出。
-
第2步 – 创建一个函数main,在该函数中用指定的分隔符和要分割的字符串创建变量mystr。
-
第 3步 – 将变量start value的值设置为0。
-
第4步 – 建立一个while循环,通过使用strings.Index()函数,获得从start值开始的str子串中分隔符的索引。如果结束值为-1,则断开循环。
-
第5步 – 在结束值的基础上,加上开始值,使用strings,找到开始和结束之间的子串。
-
第6步 – 通过添加len和end(分隔符)来修改start
-
第 7步 – 直到end为-1,重复第3步到9。
-
第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()函数。