为了账号安全,请及时绑定邮箱和手机立即绑定

从字符串中获取子字符串信息的最佳方法是什么

从字符串中获取子字符串信息的最佳方法是什么

Go
幕布斯7119047 2023-08-14 16:49:18
我实际上正在做一个函数来获取一些数据。该数据包含的信息对我来说不是必需的,因此我正在寻找找到它的最佳方法。我有的是这个e := strings.Index(result, "Country") //Searching for the country info like Country: US当我获得索引时,我会搜索需要下一个单词之类的信息。这就是我正在寻找的。有什么想法以最佳方式解决这个问题吗?
查看完整描述

3 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

您可以使用包中的FindStringIndexregexp。它保证运行时间与输入大小成线性关系。FindStringIndex返回slice定义匹配字符串位置的两个元素中的一个,以便您可以轻松获取下一个单词。



查看完整回答
反对 回复 2023-08-14
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

这是查找字符串索引的另一种方法。

按该字符串拆分,然后length of the first index是该字符串第一次出现的索引。
https://play.golang.org/p/x7QWyuC_1wK

    result := "City:San Fran,State:CA,Country:US"


    // split the string 

    s := strings.Split(result, "US")


    // index of US 

    index := len(s[0])


    fmt.Println(index)


// Output

    U 31


查看完整回答
反对 回复 2023-08-14
?
米脂

TA贡献1836条经验 获得超3个赞

我不确定您的结果字符串是什么样子,但如果您可以将其转换为“城市:旧金山;州:CA;国家:US”等格式,那么可以轻松将其转换为地图。例如:


result := "City:San Fran,State:CA,Country:US"

fields := strings.Split(result, ",")

fieldsMap := map[string]string{}

for _, field := range fields {

    pair := strings.Split(field, ":")

    fieldsMap[pair[0]] = pair[1]

}

现在您可以非常轻松地访问任何值: country := fieldsMap["Country"]如果您fmt.Println(country)


查看完整回答
反对 回复 2023-08-14
  • 3 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信