加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

从golang中的一个字符串中剥离所有的空格

发布时间:2020-12-16 19:29:19 所属栏目:大数据 来源:网络整理
导读:从一些任意字符串中去除所有空格的最快方法是什么? 我从串包中链接两个函数: response = strings.Join(strings.Fields(response),"") 任何人都有更好的方法来做到这一点 以下是使用 strings.Map 生成较少中间数据的解决方案: strings.Map(func(r rune) ru
从一些任意字符串中去除所有空格的最快方法是什么?

我从串包中链接两个函数:

response = strings.Join(strings.Fields(response),"")

任何人都有更好的方法来做到这一点

以下是使用 strings.Map生成较少中间数据的解决方案:
strings.Map(func(r rune) rune {
  if unicode.IsSpace(r) {
    return -1
  }
  return r
},response)

以下是两种功能之间的基准(source data):

BenchmarkSpaceMap        500       2941575 ns/op      221184 B/op          2 allocs/op
BenchmarkSpaceFieldsJoin         300       4967475 ns/op      524288 B/op          3 allocs/op
package main_test

import (
    "strings"
    "unicode"
    "testing"
)

func SpaceMap(str string) string {
    return strings.Map(func(r rune) rune {
        if unicode.IsSpace(r) {
            return -1
        }
        return r
    },str)
}

func SpaceFieldsJoin(str string) string {
    return strings.Join(strings.Fields(str),"")
}

func BenchmarkSpaceMap(b *testing.B) {
    for n := 0; n < b.N; n++ {
        SpaceMap(data)
    }
}

func BenchmarkSpaceFieldsJoin(b *testing.B) {
    for n := 0; n < b.N; n++ {
        SpaceFieldsJoin(data)
    }
}

(编辑:李大同)

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

    推荐文章
      热点阅读