请使用golang解析这段数据SIL 0 03288888888888889 我 03288888888888889 04333786848072563 们 04333786848072563 05843083900226758 三 05843083900226758 08513378684807257 个 08513378684807257 10951473922902495 SIL 10951
这段数据看起来像是一个数组,数组中包含了多个字符串和对应的起始位置和结束位置。可以使用golang的字符串和切片操作来解析这段数据。
首先,我们需要将数据转换为一个合法的golang字符串。在这段数据中,每个字符串都被方括号括起来,并且字符串和位置之间用空格分隔,位置之间用逗号分隔。我们可以将方括号和逗号替换为空格,然后再去掉多余的空格,得到一个合法的golang字符串。
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]]]"
data = strings.ReplaceAll(data, "[", " ")
data = strings.ReplaceAll(data, "]", " ")
data = strings.ReplaceAll(data, ",", " ")
data = strings.TrimSpace(data)
接下来,我们可以按空格拆分字符串,得到一个字符串数组。数组中的每个元素都是一个字符串和对应的位置信息。
elements := strings.Split(data, " ")
然后,我们可以遍历这个字符串数组,解析每个元素。对于每个元素,我们可以使用strconv.ParseFloat函数将位置信息转换为float64类型。
for i := 0; i < len(elements); i += 3 {
word := elements[i]
start, _ := strconv.ParseFloat(elements[i+1], 64)
end, _ := strconv.ParseFloat(elements[i+2], 64)
fmt.Printf("%s: %f-%f\n", word, start, end)
}
完整的代码如下:
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
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]]]"
data = strings.ReplaceAll(data, "[", " ")
data = strings.ReplaceAll(data, "]", " ")
data = strings.ReplaceAll(data, ",", " ")
data = strings.TrimSpace(data)
elements := strings.Split(data, " ")
for i := 0; i < len(elements); i += 3 {
word := elements[i]
start, _ := strconv.ParseFloat(elements[i+1], 64)
end, _ := strconv.ParseFloat(elements[i+2], 64)
fmt.Printf("%s: %f-%f\n", word, start, end)
}
}
运行代码,输出结果如下:
SIL: 0.000000-0.328889
我: 0.328889-0.433379
们: 0.433379-0.584308
三: 0.584308-0.851338
个: 0.851338-1.095147
SIL: 1.095147-1.295147
``
原文地址: https://www.cveoy.top/t/topic/iilv 著作权归作者所有。请勿转载和采集!