Go语言程序:将字符串分割成多个子字符串


在Go编程语言中,子字符串是原始字符串的一部分,包含原始字符串中的一系列字符。可以通过对字符串值使用切片语法来获取Go中的子字符串。可以使用Go (Golang)中的strings.Split()函数将字符串分割成子字符串。该函数的第一个输入是要分割的字符串,第二个参数是用于分隔子字符串的分隔符。函数的结果是一个包含子字符串的字符串切片。还有其他方法可以将字符串分割成多个子字符串。

方法一:使用strings.Split()函数

在这个方法中,我们将使用内置函数strings.split()函数将字符串分割成多个子字符串,其功能描述如下。这里,此函数将字符串分割成单词,循环将遍历这些单词以打印子字符串。

语法

func Split(str, sep string) []string

Split() 函数用于通过提供的分隔符分割字符串。此函数位于strings包中,它接受要分割的字符串以及分隔符作为参数。然后,该函数返回最终的字符串数组作为结果。

算法

  • 步骤1 - 创建一个main包,并在程序中声明fmt(格式包)和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!

方法二:使用strings.Index()函数

在这个方法中,我们将使用内置函数strings.Index()函数将字符串分割成多个子字符串。使用strings.Index(),此程序重复使用while循环来确定字符串中分隔符的索引。

语法

strings.Index()

可以使用Golang中的strings.Index()函数将字符串分割成子字符串。该函数的第一个输入是要分割的字符串,第二个参数是用于分隔子字符串的分隔符。函数的结果是一个包含子字符串的字符串切片。

算法

  • 步骤1 - 创建一个main包,并在程序中声明fmt(格式包)和strings包,其中main产生可执行示例,fmt帮助格式化输入和输出。

  • 步骤2 - 创建一个main函数,并在该函数中使用指定的字符串和分隔符创建一个名为mystr的变量。

  • 步骤3 - 将变量start的值设置为0。

  • 步骤4 - 建立一个while循环,并使用strings.Index()函数获取从start值开始的str子字符串中分隔符的索引。如果end值为-1,则中断循环。

  • 步骤5 - 将start值添加到end值,并使用strings.Index()函数查找start和end之间的子字符串。

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

更新于:2023年2月20日

815 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.