如何在分割后从切片中修剪Go中的空格

Eme*_*Cod 4 go

我有一个逗号分隔的字符串,所以它可以是 test1, test2, test3test1,test2,test3test1, test2, test3.

我在Go中将其拆分为strings.Split(s, ","),但现在我有一个[]string可以包含具有任意数量的空格的元素.

我怎样才能轻松修剪它们?这里的最佳做法是什么?

这是我目前的代码

var property= os.Getenv(env.templateDirectories)
if property != "" {
    var dirs = strings.Split(property, ",")
    for index,ele := range dirs {
        dirs[index] = strings.TrimSpace(ele)
    }
    return dirs
}
Run Code Online (Sandbox Code Playgroud)

我来自Java,并假设Go中也有map/reduce等功能,因此问题.

vah*_*det 12

你可以strings.TrimSpace在循环中使用.如果您还想保留顺序,可以使用索引而不是值作为循环参数:

去游乐场示例

  • 鉴于你只做一次,我不确定它是什么"boilter plate codish",如果你需要经常这样做,你可以把它放在一个函数中.这是一个简单的解决方案,需要3行代码.不知道为什么它被downvoted. (5认同)
  • @EmersonCod"聪明"是反Go.以明显的方式做事.当你必须在6个月后再次阅读你的代码时,你会很高兴. (2认同)

小智 6

无需循环的简单方法

test := "2   , 123,    1"
result := strings.Split(strings.ReplaceAll(test," ","") , ",")
Run Code Online (Sandbox Code Playgroud)

  • 这很好,除非某些元素包含空格(注意 OP 为每个元素使用 `strings.TrimSpace`,它只删除前导和尾随空格) (3认同)