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 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告