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

我实际上正在做一个函数来获取一些数据。该数据包含的信息对我来说不是必需的,因此我正在寻找找到它的最佳方法。我有的是这个

e := strings.Index(result, "Country") //Searching for the country info like Country: US

当我获得索引时,我会搜索需要下一个单词之类的信息。这就是我正在寻找的。有什么想法以最佳方式解决这个问题吗?


幕布斯7119047
浏览 83回答 3
3回答

慕码人2483693

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

汪汪一只猫

这是查找字符串索引的另一种方法。按该字符串拆分,然后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

米脂

我不确定您的结果字符串是什么样子,但如果您可以将其转换为“城市:旧金山;州: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)
打开App,查看更多内容
随时随地看视频慕课网APP