duanan1228 2018-09-27 19:45
浏览 178

如何在实际映射中转换字符串“ key:value”?

Is it possible to transform a string containing "key:value key2:value" in an actual Golang map?

Example:

package main

type Test struct{
  options map[string]interface{}
}

func main() {
   string := "key:value key2:key:value"
   var test Test
   /// Do something to parse string into test.Options
}

Thanks!

  • 写回答

1条回答 默认 最新

  • dqc42632 2018-09-27 20:16
    关注

    Yes, you can definitely parse that string into a map of the type you specify!

    Take a look at the "strings" package, in particular strings.SplitN(...). Consider these examples and think about how you can combine them, along with iteration, to populate that map:

    str := "key:value key2:key:value"
    
    kvs := strings.SplitN(str, " ", -1)
    // []string{
    //  "key:value",
    //  "key2:key:value",
    // }
    
    kv1 := strings.SplitN(kvs[1], ":", 2)
    // []string{
    //   "key2",
    //   "key:value",
    // }
    

    That is, you can split the string by spaces () to get each key/value pair, then you can split by colons (:) to split each pair into their own parts. Finally, you just need to add each pair to the map!

    Notice that when you call strings.SplitN(...) with -1 as the final argument it will split the input string into as many substrings as are present:

    kv1 := strings.SplitN(kvs[1], ":", -1) // Note the -1 here
    // []string{
    //   "key2",
    //   "key",
    //   "value",
    // }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?