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

news/2024/11/16 6:53:20/

有这样一个使用空格分割字符串的场景,字符串中被分割的子串之间的空格数量不确定,有一个两个或者多个空格,这种场景下,使用最容易想到的 strings.Split 函数就做不到了。本文接下来就介绍几种行之有效的方法。

使用 strings.Fields 函数

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

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

运行看下效果:

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

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

使用正则表达式

首先看下示例代码:

package mainimport ("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 表示返回所有子串。


http://www.ppmy.cn/news/977746.html

相关文章

BERT精读

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 论文精读 —— BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding - 知乎 (zhihu.com) pre-training:在一个数据集上训练好一个模型,这个模型主要的目…

【业务功能篇49】Springboot+EasyPoi 实现Excel 带图片列的导入导出

SpringBoot整合EasyPoi实现Excel的导入和导出(带图片)_51CTO博客_springboot easypoi导出excel

如何利用在线培训考试系统提升员工技能?

在如今竞争激烈的商业环境中,不断提升员工的技能和知识变得至关重要。为了满足这一需求,越来越多的企业开始采用在线培训考试系统。借助这种系统,企业可以以有效和高效的方式提供培训,并确保员工能够学到最新的知识和技能。 1. 灵…

Java学习笔记25——集合进阶3

Map集合概述和使用 Map集合概述和特点Map集合概述Map集合的基本功能Map集合的获取功能 Map集合的遍历方式方式1方式2 Map集合概述和特点 Map集合概述 Interface Map<K,V> K:键的类型&#xff0c;V:值的类型将键映射到值得对象&#xff1b;不能包含重复的键&#xff0c;…

你的服务器还安全吗?用户数据是否面临泄露风险?

一系列严重的网络安全事件引起了广泛关注&#xff0c;多家知名公司的服务器遭到黑客挟持&#xff0c;用户的个人数据和敏感信息面临泄露的风险。这些事件揭示了网络安全的脆弱性和黑客攻击的威胁性&#xff0c;提醒着企业和个人加强对网络安全的重视。 一、入侵案例1.1 蔚来数据…

基础算法-数组模拟队列

队列&#xff1a;先进先出 什么叫做队列&#xff1a; 就是一个特殊的数组。这个数组&#xff0c;最前面叫队头&#xff0c;最后面叫队尾。只允许在最后面添加元素&#xff0c;只允许在最前面删除元素。 解题思路&#xff1a; 用一个数组 q 保存数据。 用 hh 代表队头&…

macbook 软件iMovie for Mac(专业视频剪辑工具)中文版

iMovie mac中文版是一款针对Mac平台量身定做的视频编辑工具&#xff0c;软件凭借流线型设计和直观的编辑功能&#xff0c;可以让您感受前所未有的方式制作好莱坞风格的预告片和精美电影&#xff0c;并且还可以浏览视频资料库&#xff0c;快速共享挚爱瞬间&#xff0c;创建精美的…

使用预训练的2D扩散模型改进3D成像

扩散模型已经成为一种新的生成高质量样本的生成模型&#xff0c;也被作为有效的逆问题求解器。然而&#xff0c;由于生成过程仍然处于相同的高维&#xff08;即与数据维相同&#xff09;空间中&#xff0c;极高的内存和计算成本导致模型尚未扩展到3D逆问题。在本文中&#xff0…