Golang 如何查找指定字符串的索引值
在Go语言中,字符串与Java、C ++、Python等其他语言不同。它是一个可变宽度字符序列,每个字符都由一个或多个字节使用UTF-8编码表示。
在Go字符串中,您可以使用以下函数从原始字符串中查找指定字符串的第一个索引值。这些函数在strings包中定义,因此您必须在程序中导入strings包以访问这些函数:
1. Index: 此函数用于查找给定字符串在原始字符串中第一次出现的索引值。如果原始字符串中没有给定字符串,则此方法将返回-1。
语法:
func Index(str, sbstr string) int
这里,str是原始字符串,sbstr是要查找索引值的字符串。让我们通过一个例子来讨论这个概念:
例子:
// Go程序演示如何查找
// 给定字符串的索引值
package main
import (
"fmt"
"strings"
)
// 主函数
func main() {
// 创建并初始化字符串
str1 := "Welcome to the online portal of GeeksforGeeks"
str2 := "My dog name is Dollar"
str3 := "I like to play Ludo"
// 显示字符串
fmt.Println("String 1: ", str1)
fmt.Println("String 2: ", str2)
fmt.Println("String 3: ", str3)
// 查找给定字符串的索引值
// 使用Index()函数
res1 := strings.Index(str1, "Geeks")
res2 := strings.Index(str2, "do")
res3 := strings.Index(str3, "chess")
res4 := strings.Index("GeeksforGeeks, geeks", "ks")
// 显示结果
fmt.Println("\n索引值:")
fmt.Println("结果1:", res1)
fmt.Println("结果2:", res2)
fmt.Println("结果3:", res3)
fmt.Println("结果4:", res4)
}
输出:
String 1:欢迎来到GeeksforGeeks的在线门户网站
String 2:我家狗名叫Dollar
String 3:我喜欢玩Ludo
索引值:
结果1:32
结果2:3
结果3:-1
结果4:3
2. IndexAny: 此方法返回原始字符串中任何Unicode代码点的chars中第一个实例的索引。如果从chars中的Unicode代码点在原始字符串中不可用,则此方法将返回-1。
语法:
func IndexAny(str, charstr string) int
这里,str是原始字符串,charstr是要查找索引值的Unicode代码点。
例子:
// Go 程序,用于说明如何查找给定字符串的索引值
package main
import (
"fmt"
"strings"
)
// 主函数
func main() {
// 创建和初始化字符串
str1 := "欢迎来到GeeksforGeeks的在线门户网站"
str2 := "我的狗叫Dollar"
str3 := "我喜欢玩西洋棋"
// 显示字符串
fmt.Println("字符串1:", str1)
fmt.Println("字符串2:", str2)
fmt.Println("字符串3:", str3)
// 查找给定字符串的索引值,使用IndexAny()函数
res1 := strings.IndexAny(str1, "G")
res2 := strings.IndexAny(str2, "do")
res3 := strings.IndexAny(str3, "lqxa")
res4 := strings.IndexAny("GeeksforGeeks, geeks", "uywq")
// 显示结果
fmt.Println("\n索引值:")
fmt.Println("结果1:", res1)
fmt.Println("结果2:", res2)
fmt.Println("结果3:", res3)
fmt.Println("结果4:", res4)
}
输出:
字符串1: 欢迎来到GeeksforGeeks的在线门户网站
字符串2: 我的狗叫Dollar
字符串3: 我喜欢玩西洋棋
索引值:
结果1: 32
结果2: 3
结果3: 2
结果4: -1
3. IndexByte: 此函数返回原始字符串中给定字节的第一个实例的索引。如果原始字符串中没有给定的字节,则该方法将返回-1。
语法:
func IndexByte(str string, b byte) int
在这里,str是原始字符串,b是一个字节,我们要查找其索引值。让我们通过一个示例来讨论这个概念:
示例:
// Go 程序,用于说明如何查找给定字节的索引值
package main
import (
"fmt"
"strings"
)
// 主函数
func main() {
// 创建和初始化字符串
str1 := "欢迎来到GeeksforGeeks的在线门户网站"
str2 := "我的狗叫Dollar"
str3 := "我喜欢玩西洋棋"
// 显示字符串
fmt.Println("字符串1:", str1)
fmt.Println("字符串2:", str2)
fmt.Println("字符串3:", str3)
//查找给定字节的索引值,使用IndexByte()函数
res1 := strings.IndexByte(str1, 'c')
res2 := strings.IndexByte(str2, 'o')
res3 := strings.IndexByte(str3, 'q')
res4 := strings.IndexByte("GeeksforGeeks, geeks", 'G')
// 显示结果
fmt.Println("\n索引值:")
fmt.Println("结果1:", res1)
fmt.Println("结果2:", res2)
fmt.Println("结果3:", res3)
fmt.Println("结果4:", res4)
}
输出:
字符串1: 欢迎来到GeeksforGeeks的在线门户网站
字符串2: 我的狗叫Dollar
字符串3: 我喜欢玩西洋棋
索引值:
结果1: 3
结果2: 4
结果3: -1
结果4: 0
极客教程