转载自 https://blog.youkuaiyun.com/TCatTime/article/details/100511043
描述
strings.Split()函数用于将指定的分隔符切割字符串,并返回切割后的字符串切片。
语法
需要导入 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
本文介绍Go语言中strings.Split()函数的功能及用法,包括如何按分隔符切割字符串并返回切片,以及不同情况下的特殊处理。
1378

被折叠的 条评论
为什么被折叠?



