加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

go语言中的split方法怎么应用

发布时间:2023-07-12 14:30:23 所属栏目:语言 来源:
导读:这篇文章主要介绍了go语言中的split方法怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇go语言中的split方法怎么使用文章都会有所收获,下面我们一起来看看吧。

在go语言
这篇文章主要介绍了go语言中的split方法怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇go语言中的split方法怎么使用文章都会有所收获,下面我们一起来看看吧。
 
在go语言中,Split()方法用于分割字符串,可以使用分隔符将字符串划分为子字符串列表,而子字符串以切片的形式返回。Split()是strings包的方法,使用前需要先导入strings包,使用语法为“strings.Split(待分割的字符串, 分隔符)”。
 
go语言split方法    
 
在 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. 返回的字符串切片中不再包含分隔符
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!