在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. 返回的字符串切片中不再包含分隔符
Atas ialah kandungan terperinci go语言中split方法有什么用. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Penggunaan kata kunci Jenis dalam Go
Cara melaksanakan senarai terpaut dalam go
Apakah perisian pengaturcaraan bahasa Go?
Bagaimana untuk belajar bahasa go dari 0 asas
Bagaimana untuk menggunakan split dalam python
penggunaan split js
Bagaimana untuk menentukan pembolehubah dalam golang
Apakah kaedah untuk melaksanakan lebihan beban operator dalam bahasa Go?