Parsing 如何将分隔字符串解析为子字符串片段?

Parsing 如何将分隔字符串解析为子字符串片段?,parsing,go,Parsing,Go,给定如下所示的URL: http://127.0.0.1:3001/find?fields=hostname,App,Node_type,invalid 我将字段提取到如下切片中: filters := r.URL.Query().Get("fields") fmt.Println(filters) 结果: hostname,App,Node_type,invalid 它作为字符串接收,但我更愿意将子字符串分隔成一个序列。问题实际上涉及如何在特定分隔符上拆分字符串。为此,您可以使用: 您的

给定如下所示的URL:

http://127.0.0.1:3001/find?fields=hostname,App,Node_type,invalid
我将字段提取到如下切片中:

filters := r.URL.Query().Get("fields")
fmt.Println(filters)
结果:

hostname,App,Node_type,invalid

它作为字符串接收,但我更愿意将子字符串分隔成一个序列。

问题实际上涉及如何在特定分隔符上拆分字符串。为此,您可以使用:


您的
过滤器
变量现在将是一个切片,如果没有可用的“fields”查询参数,该切片可能为空。

我认为您的URL应该为空

http://127.0.0.1:3001/find?fields=hostname&fields=App&fields=Node_type&fields=invalid
或者如果你不喜欢,你可以解析

filterSlice:=strings.Split("filters", ",")

事实上,前面的答案正是我想要的。这解决了我的问题。我想你误解了我的问题。我也会为没有清楚地表达而承担责任。我很高兴你能弄明白,但你最初的问题是困惑于如何区分“字段”值。我假设URL格式不开放供讨论。如果你能接受@Uvelichitel的建议并更改URL格式,那就更好了。在这里,我们要预先警告您,您仍然可以得到重复的“字段”值,因此您可能希望将它们收集到一个集合结构中,以帮助消除重复(如果您的应用程序需要的话)。
filterSlice:=strings.Split("filters", ",")