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

前端之家收集整理的这篇文章主要介绍了从golang中的一个字符串中剥离所有的空格前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
从一些任意字符串中去除所有空格的最快方法是什么?

我从串包中链接两个函数

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)
    }
}

猜你在找的Go相关文章