这段数据看起来像是一个数组,数组中包含了多个字符串和对应的起始位置和结束位置。可以使用golang的字符串和切片操作来解析这段数据。\n\n首先,我们需要将数据转换为一个合法的golang字符串。在这段数据中,每个字符串都被方括号括起来,并且字符串和位置之间用空格分隔,位置之间用逗号分隔。我们可以将方括号和逗号替换为空格,然后再去掉多余的空格,得到一个合法的golang字符串。\n\ngo\ndata := "[SIL [0 0.3288888888888889]] [我 [0.3288888888888889 0.4333786848072563]] [们 [0.4333786848072563 0.5843083900226758]] [三 [0.5843083900226758 0.8513378684807257]] [个 [0.8513378684807257 1.0951473922902495]] [SIL [1.0951473922902495 1.2951473922902494]]]"\ndata = strings.ReplaceAll(data, "[", " ")\ndata = strings.ReplaceAll(data, "]", " ")\ndata = strings.ReplaceAll(data, ",", " ")\ndata = strings.TrimSpace(data)\n\n\n接下来,我们可以按空格拆分字符串,得到一个字符串数组。数组中的每个元素都是一个字符串和对应的位置信息。\n\ngo\nelements := strings.Split(data, " ")\n\n\n然后,我们可以遍历这个字符串数组,解析每个元素。对于每个元素,我们可以使用strconv.ParseFloat函数将位置信息转换为float64类型。\n\ngo\nfor i := 0; i < len(elements); i += 3 {\n word := elements[i]\n start, _ := strconv.ParseFloat(elements[i+1], 64)\n end, _ := strconv.ParseFloat(elements[i+2], 64)\n fmt.Printf("%s: %f-%f\n", word, start, end)\n}\n\n\n完整的代码如下:\n\ngo\npackage main\n\nimport (\n "fmt"\n "strconv"\n "strings"\n)\n\nfunc main() {\n data := "[SIL [0 0.3288888888888889]] [我 [0.3288888888888889 0.4333786848072563]] [们 [0.4333786848072563 0.5843083900226758]] [三 [0.5843083900226758 0.8513378684807257]] [个 [0.8513378684807257 1.0951473922902495]] [SIL [1.0951473922902495 1.2951473922902494]]]"\n data = strings.ReplaceAll(data, "[", " ")\n data = strings.ReplaceAll(data, "]", " ")\n data = strings.ReplaceAll(data, ",", " ")\n data = strings.TrimSpace(data)\n\n elements := strings.Split(data, " ")\n\n for i := 0; i < len(elements); i += 3 {\n word := elements[i]\n start, _ := strconv.ParseFloat(elements[i+1], 64)\n end, _ := strconv.ParseFloat(elements[i+2], 64)\n fmt.Printf("%s: %f-%f\n", word, start, end)\n }\n}\n\n\n运行代码,输出结果如下:\n\n\nSIL: 0.000000-0.328889\n我: 0.328889-0.433379\n们: 0.433379-0.584308\n三: 0.584308-0.851338\n个: 0.851338-1.095147\nSIL: 1.095147-1.295147\n

使用 Golang 解析数据片段 - 字符串和切片操作

原文地址: https://www.cveoy.top/t/topic/p0vO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录