博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go strings.Split函数
阅读量:4190 次
发布时间:2019-05-26

本文共 2182 字,大约阅读时间需要 7 分钟。

目录


 

描述

strings.Split()函数用于将指定的分隔符切割字符串,并返回切割后的字符串切片。

 

语法

需要导入 strings包

strings.Split(s, sep)

 

参数

参数 说明 备注
s 待分割的字符串 字符串类型的参数
sep 分隔符

字符串类型的参数

 

返回值

返回一个字符串切片。

 

使用示例

Split()函数将字符串根据分隔符切割。切割后返回一个字符串切片,切片len和cap值等于原字符串中存在分隔符的数量 + 1(仅在s不是空字符串的情况下成立)。

package mainimport (	"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: 8cap: 8

 

注意事项

1. 当分隔符不存在于原字符串中时

当分隔符在原字符串中不存在的情况下,Split()函数仅仅将原字符串转换成一个len和cap值都为1的字符串切片。

package mainimport (	"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: 1cap: 1

2. 当分隔符是空字符串时

当分隔符是空字符串时,Split()函数将字符串中的每一个字符分割成一个单独的元素。

package mainimport (	"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: 2cap: 2

 

3. 参数都为空字符串

当Split()函数的两个参数都是空字符串时(即s和sep都是空字符串),Split()函数返回一个len和cap值都为0的空字符串切片。

package mainimport (	"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: 0cap: 0

 

4. 当s为空字符串,sep不为空字符串时

不同于上一个场景,在这种情况下虽然得到的结果仍然是字符串切片,但是字符串切片的len和cap值是1(而不是像上一个场景中的值是0)。返回的结果是包含一个空字符串的字符串切片。

package mainimport (	"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: 1cap: 1string_slice[0]:, type:string, len():0element == ""? true

5. 返回的字符串切片中不再包含分隔符

转载地址:http://ufsoi.baihongyu.com/

你可能感兴趣的文章
Java类型信息详解
查看>>
深入理解Java线程池
查看>>
Java线程堆栈分析
查看>>
Java中子类能否继承父类的私有属性和方法
查看>>
JVM内存模型详解
查看>>
(二)Git--工作区和暂存区、管理修改与撤销
查看>>
(七)Git--自定义Git
查看>>
(五)Git--分支管理
查看>>
(四)Git--远程仓库
查看>>
(六) Git--标签管理
查看>>
java中继承,子类是否继承父类的构造函数
查看>>
什么是Spring Cloud ?
查看>>
Qt下D-Bus的具体运用(软键盘输入法的实现)
查看>>
嵌入式环境的搭建(用于Arm开发板)
查看>>
Qt中文件读取的几种方式
查看>>
pyqt实现界面化编程
查看>>
qt写DLL文件并调用和出现的问题分析
查看>>
工厂模式(Factory)-设计模式(一)
查看>>
建造者模式(Builder)-设计模式(三)
查看>>
Qt 怎么给QWidget添加滚动条
查看>>