Golang程序 分割成若干子串

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()函数。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程