我可以在这里阅读:如何从Golang中的字符串中删除多余的空格/空白?我可以使用regex或strings.Fields
从字符串中删除重复的空格。
我需要知道一种快速(这里性能很重要(的方法,可以从(可能很长的(字符串中只删除重复的(或更多的(空格,而不删除像n
这样的换行符。
示例:
-
";我有CCD_ 3的重复空间CCD_=>quot;我有CCD_ 5个重复空间CCD_;
-
"我有CCD_ 7新行=>quot;我有CCD_ 8新行;
strings.ReplaceAll(strings.Join(strings.FieldsFunc(text, func(r rune) bool {
if r == 'n' {
return false
}
return unicode.IsSpace(r)
} ), " ")," n", "n")
r := regexp.MustCompile("( ){2,}")
r.ReplaceAllString(input, " ")
strings.FieldsFunc
似乎比regexp 快得多
cpu: Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz
BenchmarkRegexp
BenchmarkRegexp-8 841189 1299 ns/op
BenchmarkFields
BenchmarkFields-8 3375925 355.4 ns/op