go如何查找字符串中子串的位置

在 Go 中,你可以使用 strings.Index() 函数来查找子串的位置。它的用法如下:

index := strings.Index(s, sub)

其中,s 是要搜索的字符串,sub 是要查找的子串。该函数会返回 subs 中首次出现的位置。如果 sub 不存在于 s 中,它会返回 -1。

例如:

s := "hello world"
index := strings.Index(s, "world")
fmt.Println(index) // 输出 6

上面的代码中,我们查找字符串 s 中的子串 "world",并使用 fmt.Println() 函数将它的位置输出。因为 "world""hello world" 中首次出现的位置是在第 6 个字符处(注意字符串的第一个字符的索引是 0),所以输出的结果为 6。

请注意,strings.Index() 函数是区分大小写的。如果你希望忽略大小写,你可以使用 strings.IndexFunc() 函数,它接受一个函数作为参数,该函数用于判断两个字符是否相同。例如:

s := "hello world"
index := strings.IndexFunc(s, func(c rune) bool {
    return unicode.ToLower(c) == 'w'
})
fmt.Println(index) // 输出 6

在这个例子中,我们使用了 unicode.ToLower() 函数将字符转换为小写字母,然后比较它们是否相同。由于 wW 在这种情况下被