我是新手,试图找到在字符串中查找字符串的索引,但我想传入起始索引。
我知道有strings.Index和strings.LastIndex,但他们只找到第一个和最后一个。有没有我可以使用的功能,我可以在哪里指定起始索引?像我的例子中的最后一行。
示例:
s := "go gopher, go"
fmt.Println(strings.Index(s, "go")) // Position 0
fmt.Println(strings.LastIndex(s, "go")) // Postion 11
fmt.Println(strings.Index(s, "go", 1)) // Position 3 - Start looking for "go" begining at index 1
答案 0 :(得分:5)
不,但在字符串片段
上应用strings.Index可能更简单strings.Index(s[1:], "go")+1
strings.Index(s[n:], "go")+n
请参阅example(对于未找到字符串的情况,请参阅OneOfOne' s answer),但是,如commented所示Dewy Broto,可以使用'if
' statement including a simple statement进行测试:
(也称为'if
' with an initialization statement)
if i := strings.Index(s[n:], sep) + n; i >= n {
...
}
答案 1 :(得分:3)
这是一个烦人的疏忽,你必须创建自己的功能。
类似的东西:
func indexAt(s, sep string, n int) int {
idx := strings.Index(s[n:], sep)
if idx > -1 {
idx += n
}
return idx
}