go - Golang 索引一个字符串数组
问题描述
嗨,我有一个字符串说明了这一点。
"Style: Saison
ABV: 7.7
IBU: 20"
我尝试将其拆分为一个数组,以便获得Saison
这是我转换为数组的方法。
style :=strings.Split(style, "Style:")
当我做
style[0]
它没有索引 Saison。我也尝试了 style[1] 和 style[2],但没有任何反应。我究竟做错了什么?
Style = []string 所以它是一个字符串列表,对吗?
解决方案
你可以使用字符串。字段功能:
FieldsFunc 在每次运行满足 f(c) 的 Unicode 代码点 c 处拆分字符串 s,并返回 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("%q\n", 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("%.2f\n", abvValue)
ibuValue, err := strconv.ParseInt(strings.TrimSpace(strFields[5]), 10, 32)
if err != nil {
fmt.Println("Error parsing int!")
}
fmt.Printf("%d\n", ibuValue)
}
输出:
["Style" " Saison Drink" "ABV" " 7.7" "IBU" " 20"]
Saison Drink
7.70
20
推荐阅读
- electron - 尝试使用 Electron Forge 为 Raspberry Pi Zero 构建应用程序
- mysql - MYSQL 8 - 如何在 CTE 中找出“节点”是否是“叶节点”而检索树
- assembly - 如果没有标志标志 (SF),x86 是否仍可完全编程?
- visual-studio-code - VScode 直播服务器问题
- javascript - Javascript:从 ajax / 时间问题加载 Google Charts
- rust - 如何在 Near 协议合约中将“AccountId”转换为“ValidAccountId”?
- xml - finvoice/xml 文件电子发票的电子邮件 mime 类型是什么(xml 而不是 pdf)?
- sql - 根据列中的状态更改创建触发器并在表的另一列中插入值
- php - 无法打开阅读!文件不存在。代码点火器 PHPEXCEL
- python-3.x - 使用 Python 3“请求”包访问具有 IP V6 地址的 Web 服务器:适用于 W10,不适用于 Rasberry Pi OS