迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Go >

如何在 Golang 中拆分字符串?

作者:迹忆客 最近更新:2023/01/08 浏览次数:

在 Go 语言中,字符串不同于 Java、C++、Python 等其他语言。它是一个可变宽度字符序列,其中每个字符都使用 UTF-8 编码由一个或多个字节表示。 在 Go 字符串中,可以借助以下函数将字符串拆分为切片。 这些函数是在 strings 包下定义的,因此我们必须在程序中导入 strings 包才能访问这些函数:

split

此函数将字符串拆分为由给定分隔符分隔的所有子字符串,并返回包含这些子字符串的切片。

语法:

func Split(str, sep string) []string

这里,str 是字符串,sep 是分隔符。 如果 str 不包含给定的 sep 并且 sep 非空,则它将返回一个长度为 1 的切片,其中仅包含 str。 或者,如果 sep 为空,则它将在每个 UTF-8 序列之后拆分。 或者如果 str 和 sep 都为空,那么它将返回一个空切片。

下面我们看一个示例

package main
  
import (
    "fmt"
    "strings"
)
  
// Main 函数
func main() {
  
    // 初始化字符串
    str1 := "Welcome, to the, online portal, of jiyik.com"
    str2 := "My dog name is Dollar"
    str3 := "I like to play Ludo"
  
    // 打印字符串
    fmt.Println("String 1: ", str1)
    fmt.Println("String 2: ", str2)
    fmt.Println("String 3: ", str3)
  
    // 拆分给定字符串
    // 使用 split() 方法
    res1 := strings.Split(str1, ",")
    res2 := strings.Split(str2, "")
    res3 := strings.Split(str3, "!")
    res4 := strings.Split("", "jiyik.com, jiyik")
  
    // 显示结果
  
    fmt.Println("\nResult 1: ", res1)
    fmt.Println("Result 2: ", res2)
    fmt.Println("Result 3: ", res3)
    fmt.Println("Result 4: ", res4)
  
}

运行示例

上面示例的输出结果如下

String 1:  Welcome, to the, online portal, of jiyik.com
String 2:  My dog name is Dollar
String 3:  I like to play Ludo

Result 1:  [Welcome  to the  online portal  of jiyik.com]
Result 2:  [M y   d o g   n a m e   i s   D o l l a r]
Result 3:  [I like to play Ludo]
Result 4:  []

SplitAfter

此函数在给定分隔符的每个实例之后将字符串拆分为所有子字符串,并返回包含这些子字符串的切片。

语法

func SplitAfter(str, sep string) []string

这里,str 是字符串,sep 是分隔符。 如果 str 不包含给定的 sep 并且 sep 非空,则它将返回一个长度为 1 的切片,其中仅包含 str。 或者,如果 sep 为空,则它将在每个 UTF-8 序列之后拆分。 或者如果 str 和 sep 都为空,那么它将返回一个空切片。

下面我们看一个示例

package main
  
import (
    "fmt"
    "strings"
)
  
// Main 函数
func main() {
  
    // 初始化字符串
    str1 := "Welcome, to the, online portal, of jiyik.com"
    str2 := "My dog name is Dollar"
    str3 := "I like to play Ludo"
  
    // 显示字符串
    fmt.Println("String 1: ", str1)
    fmt.Println("String 2: ", str2)
    fmt.Println("String 3: ", str3)
  
    // 拆分给定的字符串
    // 使用 SplitAfter() 函数
    res1 := strings.SplitAfter(str1, ",")
    res2 := strings.SplitAfter(str2, "")
    res3 := strings.SplitAfter(str3, "!")
    res4 := strings.SplitAfter("", "jiyik.com, jiyik")
  
    // 显示结果
    fmt.Println("\nResult 1: ", res1)
    fmt.Println("Result 2: ", res2)
    fmt.Println("Result 3: ", res3)
    fmt.Println("Result 4: ", res4)
  
}

运行示例

上述示例运行结果如下

String 1:  Welcome, to the, online portal, of jiyik.com
String 2:  My dog name is Dollar
String 3:  I like to play Ludo

Result 1:  [Welcome,  to the,  online portal,  of jiyik.com]
Result 2:  [M y   d o g   n a m e   i s   D o l l a r]
Result 3:  [I like to play Ludo]
Result 4:  []

SplitAfterN

此函数在给定分隔符的每个实例之后将字符串拆分为所有子字符串,并返回包含这些子字符串的切片。

语法

func SplitAfterN(str, sep string, m int) []string

这里,str 是字符串,sep 是分隔符,m 用于查找要返回的子字符串数。 这里,如果 m>0,则最多返回m个子串,最后一个子串不会分裂。 如果 m == 0 ,那么它将返回 nil。 如果 m<0,则返回所有子串。

下面我们看示例

package main
  
import (
    "fmt"
    "strings"
)
  
// Main 函数
func main() {
  
    // 初始化字符串
    str1 := "Welcome, to the, online portal, of jiyik.com"
    str2 := "My dog name is Dollar"
    str3 := "I like to play Ludo"
  
    // 显示字符串
    fmt.Println("String 1: ", str1)
    fmt.Println("String 2: ", str2)
    fmt.Println("String 3: ", str3)
  
    // 使用 SplitAfterN() 方法拆分给定的字符串
    res1 := strings.SplitAfterN(str1, ",", 2)
    res2 := strings.SplitAfterN(str2, "", 4)
    res3 := strings.SplitAfterN(str3, "!", 1)
    res4 := strings.SplitAfterN("", "jiyik.com, jiyik", 3)
  
    // 显示结果
    fmt.Println("\nResult 1: ", res1)
    fmt.Println("Result 2: ", res2)
    fmt.Println("Result 3: ", res3)
    fmt.Println("Result 4: ", res4)
  
}

运行示例

上面示例输出结果如下所示

String 1:  Welcome, to the, online portal, of jiyik.com
String 2:  My dog name is Dollar
String 3:  I like to play Ludo

Result 1:  [Welcome,  to the, online portal, of jiyik.com]
Result 2:  [M y   dog name is Dollar]
Result 3:  [I like to play Ludo]
Result 4:  []

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 C 语言中的 goto 语句

发布时间:2023/05/07 浏览次数:79 分类:C语言

本文介绍了如何在 C 语言中使用 goto 语句。使用 goto 语句在 C 语言中实现循环 goto 关键字是 C 语言的一部分,它提供了一个做无条件跳转的结构。

Django 中的 Slug

发布时间:2023/05/04 浏览次数:173 分类:Python

本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。

Django ALLOWED_HOSTS 介绍

发布时间:2023/05/04 浏览次数:181 分类:Python

本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。

Django 中的 Select_related 方法

发布时间:2023/05/04 浏览次数:129 分类:Python

本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。

在 Django 中上传媒体文件

发布时间:2023/05/04 浏览次数:198 分类:Python

在本文中,我们简要介绍了媒体文件以及如何在 Django 项目中操作媒体文件。

Django 返回 JSON

发布时间:2023/05/04 浏览次数:106 分类:Python

在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。

在 Django 中创建对象

发布时间:2023/05/04 浏览次数:59 分类:Python

本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便