如何在不删除新行字符的情况下删除字符串中重复的空格



我可以在这里阅读:如何从Golang中的字符串中删除多余的空格/空白?我可以使用regex或strings.Fields从字符串中删除重复的空格。

我需要知道一种快速(这里性能很重要(的方法,可以从(可能很长的(字符串中只删除重复的(或更多的(空格,而不删除像n这样的换行符。

示例:

  1. ";我有CCD_ 3的重复空间CCD_=>quot;我有CCD_ 5个重复空间CCD_;

  2. "我有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

最新更新