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

有这样一个使用空格分割字符串的场景,字符串中被分割的子串之间的空格数量不确定,有一个两个或者多个空格,这种场景下,使用最容易想到的 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 表示返回所有子串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路多辛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值