Golang索引字符串数组



嗨,我有一个字符串,上面写着这句话。

"Style: Saison

ABV: 7.7


IBU: 20"

我试着把它分成一个数组,这样我就可以得到Saison

以下是我如何转换为数组。

style :=strings.Split(style, "Style:")

当我执行
style[0]

它没有索引Saison。我还尝试了样式[1]和样式[2],但都没有成功。我做错了什么?

Style=[]字符串,所以它是一个字符串列表,对吗?

您可以使用字符串字段Func

FieldsFunc在每次运行Unicode代码点c时拆分字符串s满足f(c(并返回s的切片数组。如果所有代码s中的点满足f(c(或字符串为空,空切片为返回。

FieldsFunc不保证它调用f(c(的顺序并且假设f对于给定的c.总是返回相同的值

package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
str := `Style: Saison Drink
ABV: 7.7
IBU: 20`
f := func(c rune) bool {
return c == ':' || c == 'n'
}
strFields := strings.FieldsFunc(str, f)
fmt.Printf("%qn", strFields)
styleValue := strings.TrimSpace(strFields[1])
fmt.Println(styleValue)
abvValue, err := strconv.ParseFloat(strings.TrimSpace(strFields[3]), 32)
if err != nil {
fmt.Println("Error parsing float!")
}
fmt.Printf("%.2fn", abvValue)
ibuValue, err := strconv.ParseInt(strings.TrimSpace(strFields[5]), 10, 32)
if err != nil {
fmt.Println("Error parsing int!")
}
fmt.Printf("%dn", ibuValue)
}

输出:

["Style" " Saison Drink" "ABV" " 7.7" "IBU" " 20"]
Saison Drink
7.70
20

最新更新