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