Go 操作字符串数组中的数据
我有一个字符串数组:Go 操作字符串数组中的数据,go,Go,我有一个字符串数组: var a [5]string a[0] = "red|apple|1" a[1] = "yellow|apple|3" a[2] = "red|apple|4" 我需要将数据转换为数组或映射或其他形式,但如果管道之间的第一个和第二个值相同,则应添加数字,因此我希望的输出为: var b [5]string a[0] = "red|apple|5" a[1] = "yellow|apple|3" 感谢您的帮助。您可以使用地图来实现这一点 var a [3]string
var a [5]string
a[0] = "red|apple|1"
a[1] = "yellow|apple|3"
a[2] = "red|apple|4"
我需要将数据转换为数组或映射或其他形式,但如果管道之间的第一个和第二个值相同,则应添加数字,因此我希望的输出为:
var b [5]string
a[0] = "red|apple|5"
a[1] = "yellow|apple|3"
感谢您的帮助。您可以使用地图来实现这一点
var a [3]string
a[0] = "red|apple|1"
a[1] = "yellow|apple|3"
a[2] = "red|apple|4"
b := make(map[string]int)
for _, s := range a {
k := s[:len(s)-2]
v := s[len(s)-1:]
i, err:= strconv.Atoi(v) // please, check for errors
if err != nil {
fmt.Println("bad input")
continue
}
b[k] += i
}
for k, v := range b {
fmt.Println(k, v)
}
输出:
yellow|apple 3
red|apple 5
唯一的想法是分割字符串,将其转换为map,然后尝试添加值,但它涉及到太多的循环,所以我暂时放弃了,因为可能有更简单的实现方法