在go語言中,Split()方法用於分割字串,可以使用分隔符號將字串劃分為子字串列表,而子字串以切片的形式傳回。 Split()是strings套件的方法,使用前需要先匯入strings套件,使用語法為「strings.Split(待分割的字串, 分隔符號)」。
本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
在 Go 中,Split() 函數(包含在 strings 套件中)使用分隔符號將字串分割為子字串清單。子字串以切片的形式傳回。
語法
需要匯入strings套件
strings.Split(s, sep)
參數 | 說明 | 備註 |
s | 待分割的字串 | 字串類型的參數 |
sep | 分隔符號 | 字串類型的參數 |
傳回值
傳回字串切片。
Split()函數將字串根據分隔符號切割。切割後傳回字串切片,切片len和cap值等於原始字串中存在分隔符號的數量 1(僅在s不是空字串的情況下成立)。
package main import ( "fmt" "strings" ) func main() { demo := "I&love&Go,&and&I&also&love&Python." string_slice := strings.Split(demo, "&") fmt.Println("result:",string_slice) fmt.Println("len:",len(string_slice)) fmt.Println("cap:", cap(string_slice)) }
運行結果如下:
result: [I love Go, and I also love Python.] len: 8 cap: 8
#1. 當分隔符號不存在於原始字串中時
當分隔符號在原始字串中不存在的情況下,Split()函數僅將原始字串轉換成一個len和cap值都為1的字串切片。
package main import ( "fmt" "strings" ) func main() { demo := "I love Go, and I also love Python." string_slice := strings.Split(demo, "&") fmt.Println("result:",string_slice) fmt.Println("len:",len(string_slice)) fmt.Println("cap:", cap(string_slice)) }
運行結果如下:
result: [I love Go, and I also love Python.] len: 1 cap: 1
2. 當分隔符號是空字串時
當分隔符號是空字串時,Split()函數將字串中的每一個字元分割成一個單獨的元素。
package main import ( "fmt" "strings" ) func main() { demo := "Go" string_slice := strings.Split(demo, "") fmt.Println("result:",string_slice) fmt.Println("len:",len(string_slice)) fmt.Println("cap:", cap(string_slice)) }
運行結果:
result: [G o] len: 2 cap: 2
3. 參數都為空字串
當Split()函數的兩個參數都是空字串時(即s和sep都是空字串),Split()函數傳回一個len和cap值都為0的空字串切片。
package main import ( "fmt" "strings" ) func main() { demo := "" string_slice := strings.Split(demo, "") fmt.Println("result:",string_slice) fmt.Println("len:",len(string_slice)) fmt.Println("cap:", cap(string_slice)) }
執行結果:
result: [] len: 0 cap: 0
4. 當s為空字串,sep不為空字串時
不同於上一個場景,在這種情況下雖然得到的結果仍然是字串切片,但是字串切片的len和cap值是1(而不是像上一個場景中的值是0)。傳回的結果是包含一個空字串的字串切片。
package main import ( "fmt" "strings" ) func main() { demo := "" string_slice := strings.Split(demo, "*") fmt.Println("result:",string_slice) fmt.Println("len:",len(string_slice)) fmt.Println("cap:", cap(string_slice)) element := string_slice[0] fmt.Printf("string_slice[0]:%s, type:%T, len():%d\n", element, element, len(element),) fmt.Println("element == \"\"?", element == "") }
執行結果:
result: [] len: 1 cap: 1 string_slice[0]:, type:string, len():0 element == ""? true
5. 傳回的字串切片中不再包含分隔符號
##【相關推薦:以上是go語言中split方法有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!