Golang中使用不定数量空格分割字符串的方法

 更新时间:2023年07月25日 10:15:10   作者:路多辛  
有这样一个使用空格分割字符串的场景,字符串中被分割的子串之间的空格数量不确定,有一个两个或者多个空格,这种场景下,使用最容易想到的strings.Split函数就做不到了,本文接下来就介绍几种行之有效的方法,需要的朋友可以参考下

使用 strings.Fields 函数

strings.Fields 函数接受一个字符串类型的参数,使用空格及多个连续的空格将字符串进行分割,返回一个字符串切片,正好满足了我们的需求。使用示例如下:

package main
import (
	"fmt"
	"strings"
)
func main() {
	str := "欢迎来到路多辛的博客 所思所想          很棒"
	s := strings.Fields(str)
	fmt.Println(s)
}

运行看下效果:

$ go run main.go
[欢迎来到路多辛的博客 所思所想 很棒]

可以看出 str 中的子串虽然被数量不等的空格隔开,使用strings.Fields 函数处理后得到了一个字符串类型的切片,字符串被完美分割。

使用正则表达式

首先看下示例代码:

package main
import (
	"fmt"
	"regexp"
)
func main() {
	str := "欢迎来到路多辛的博客 所思所想          很棒"
	reg := regexp.MustCompile(`\s+`)
	result := reg.Split(str, -1)
	fmt.Println(result)
}

运行看下效果:

$ go run main.go
[欢迎来到路多辛的博客 所思所想 很棒]

得到了和上个示例一样的数据,首先使用 regexp.MustCompile 函数创建一个正则表达式,用于匹配一个或多个空格(\s+ 表示匹配至少一个空格字符)。然后使用 reg.Split 方法对字符串进行分割,第二个参数 -1 表示返回所有子串。

到此这篇关于Golang中使用不定数量空格分割字符串的方法的文章就介绍到这了,更多相关Golang空格分割字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Go语言实现高性能文件上传下载系统

    基于Go语言实现高性能文件上传下载系统

    在Web应用开发中,文件上传下载是一个非常常见的需求,本文将介绍如何使用Go语言实现一个安全、高效的本地文件存储系统,感兴趣的小伙伴可以了解下
    2025-03-03
  • Golang汇编命令解读及使用

    Golang汇编命令解读及使用

    这篇文章主要介绍了Golang汇编命令解读及命令使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • golang通过反射手动实现json序列化的方法

    golang通过反射手动实现json序列化的方法

    在 Go 语言中,JSON 序列化和反序列化通常通过标准库 encoding/json 来实现,本文给大家介绍golang  通过反射手动实现json序列化的方法,感兴趣的朋友一起看看吧
    2024-12-12
  • go开源项目用户名密码验证的逻辑鬼才写法

    go开源项目用户名密码验证的逻辑鬼才写法

    这篇文章主要为大家介绍了go开源项目中发现的一个逻辑鬼才写法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Go中interface的两大用法

    Go中interface的两大用法

    本文主要介绍了Go中interface的两大用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-03-03
  • golang中json操作的完全指南

    golang中json操作的完全指南

    golang标准库有一个名叫encoding/json的包,包含了JSON的序列化(Marshal)和反序列化(Unmarshal)的能力,下面这篇文章主要给大家介绍了关于golang中json操作的相关资料,需要的朋友可以参考下
    2022-07-07
  • golang中的空slice案例

    golang中的空slice案例

    这篇文章主要介绍了golang中的空slice案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 以Golang为例详解AST抽象语法树的原理与实现

    以Golang为例详解AST抽象语法树的原理与实现

    AST 使用树状结构来表达编程语言的结构,树中的每一个节点都表示源码中的一个结构,本文将以GO语言为例,为大家介绍一下AST抽象语法树的原理与实现,希望对大家有所帮助
    2024-01-01
  • GO语言实现批量压缩图片和水印

    GO语言实现批量压缩图片和水印

    这篇文章主要介绍了GO语言实现批量压缩图片和水印,主要用到了github.com/nfnt/resize这个第三方库,仅仅支持JPG图片格式,有相同需求的小伙伴参考下吧。
    2015-03-03
  • golang实现RPC模块的示例

    golang实现RPC模块的示例

    本文详细介绍了在Go语言中如何实现RPC模块,包括RPC服务端和客户端的构建及代码实现,同时提到了使用JSON-RPC的方法,通过简单的步骤,可以实现跨进程的远程过程调用,感兴趣的可以了解一下
    2024-09-09

最新评论