string - golang中的字符串拆分
问题描述
我有两个参数名称和值,我试图在运行时解析。
在运行时,我传递以下值:
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.Split
来创建数组,而不是具有单个元素的数组:
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
}
推荐阅读
- android - 长 TextViews 在 LinearLayout 中将元素推离屏幕
- python - 尝试在 STM32F4Discovery 上实现 MicroPython 时未检测到 DFU 设备
- facebook - Facebook 页面 API:“页面公共内容访问”审查截屏视频
- c# - C# 在 SAMBA 共享中设置目录权限
- javascript - 来自变量的正则表达式 javascript 混淆
- c# - 将情侣 foreachers 转换为 linq
- javascript - Nodeschool learnyounode过滤器LS练习:无法读取未定义的属性'toString'
- c# - 如何防止使用 alt + F4 关闭任何表单
- xamarin - 如何使用库 Plugin.MediaManager (Xamarin.Forms) 播放声音
- configuration - 如何正确地将第二个密码键盘添加到 ChipDNA 服务器配置文件?