【问题标题】:String split in golang [closed]golang中的字符串拆分[关闭]
【发布时间】:2018-12-31 05:49:43
【问题描述】:

我有两个参数名称和值,我试图在运行时解析它们。

在运行时我传递了以下值:

name = text,text,text,text,text
value = 0 ,285,404,6,24

目前输出如下;

Parameters: {"text,text,text,text,text":"0,285,404,6,24"}

实际上它必须显示为,

Parameters: {"text":"0"}
Parameters: {"text":"285"}
Parameters: {"text":"404"}
Parameters: {"text":"6"}
Parameters: {"text":"24"}

以下是我的代码;

package main

import "fmt"

func main() {
   var m string
   var matchField = []string{"index,index,index,index"}
   var matchValue =[]string{"29,4,87,54"}

   for i := 0 ; i < 1 ; i++ {
        m = parameter(matchField[i], matchValue[i])
        fmt.Printf("Result: %s\n", m)
   }
}


func parameter(name string, value string) (matcher string) {
    var result string
    if name != "" || value != "" {
            result = fmt.Sprintf("{\"%s\":\"%s\"}", name, value)
    }
    return result
}

我想知道如何准确地显示输出。

【问题讨论】:

  • 你看过strings.Splitgolang.org/pkg/strings/#Split)吗?如果你用谷歌搜索如何在 go 中拆分字符串,应该是第一个结果。
  • 是的,我做到了。使用 strings.Split,我可以拆分名称和值,但是如何将它们与 {name:value} 连接起来?
  • 您已经在您提供的示例代码中加入了他们。不过,您似乎正在尝试生成 JSON 格式的输出,所以我不确定您为什么不直接使用 encoding/json 这样做。
  • 不,它不是 json 格式,它是简单的字符串
  • JSON 只是一个字符串,而您在示例代码中已经生成的字符串是有效的 JSON。无论如何...您已经使用的方法有什么问题?

标签: string go split


【解决方案1】:

您需要使用strings.Split 创建数组,而不是使用单个元素的数组:

play.golang.org/p/b5rffvBUwqd

package main

import "fmt"
import "strings"

func main() {
   var m string
   matchField := strings.Split("index,index,index,index", ",")
   matchValue := strings.Split("29,4,87,54", ",")

   for i := 0 ; i < len(matchField); i++ {
        m = parameter(matchField[i], matchValue[i])
        fmt.Printf("Parameters: %s\n", m)
   }
}


func parameter(name string, value string) (matcher string) {
    var result string
    if name != "" || value != "" {
            result = fmt.Sprintf("{\"%s\":\"%s\"}", name, value)
    }
    return result
}

【讨论】:

  • 条件应该是:i &lt; len(matchField) &amp;&amp; i &lt; len(matchValue).
猜你喜欢
  • 1970-01-01
  • 2021-06-15
  • 2016-05-21
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多