Golang 如何找到指定字符串的索引值
在Go语言中,字符串与其他语言如Java , C++ , Python等不同。它是一个宽度可变的字符序列,每个字符都由一个或多个使用UTF-8编码的字节表示。
在Go语言的字符串中,你可以使用以下函数从原始字符串中找到指定字符串的第一个索引值。这些函数是在strings包下定义的,所以,你必须在你的程序中导入strings包来访问这些函数。
1.Index: 该函数用于从原始字符串中找到指定字符串的第一个实例的索引值。如果给定的字符串在原始字符串中不存在,那么这个方法将返回-1。
语法
func Index(str, sbstr string) int
这里,str是原始字符串,sbstr是我们想找到索引值的字符串。让我们借助于一个例子来讨论这个概念。
例子
// Go program to illustrate how to find
// the index value of the given string
package main
import (
"fmt"
"strings"
)
// Main function
func main() {
// Creating and initializing the strings
str1 := "Welcome to the online portal of GeeksforGeeks"
str2 := "My dog name is Dollar"
str3 := "I like to play Ludo"
// Displaying strings
fmt.Println("String 1: ", str1)
fmt.Println("String 2: ", str2)
fmt.Println("String 3: ", str3)
// Finding the index value of the given strings
// Using Index() function
res1 := strings.Index(str1, "Geeks")
res2 := strings.Index(str2, "do")
res3 := strings.Index(str3, "chess")
res4 := strings.Index("GeeksforGeeks, geeks", "ks")
// Displaying the result
fmt.Println("\nIndex values:")
fmt.Println("Result 1: ", res1)
fmt.Println("Result 2: ", res2)
fmt.Println("Result 3: ", res3)
fmt.Println("Result 4: ", res4)
}
输出
String 1: Welcome to the online portal of GeeksforGeeks
String 2: My dog name is Dollar
String 3: I like to play Ludo
Index values:
Result 1: 32
Result 2: 3
Result 3: -1
Result 4: 3
2.IndexAny: 该方法返回原始字符串中来自chars的任何Unicode代码点的第一个实例的索引。如果原始字符串中没有来自chars的Unicode代码点,那么该方法将返回-1。
语法
func IndexAny(str, charstr string) int
这里,str是原始字符串,charstr是一个Unicode代码点,我们想从这些字符中找到索引值。
例子
// Go program to illustrate how to find
// the index value of the given string
package main
import (
"fmt"
"strings"
)
// Main function
func main() {
// Creating and initializing the strings
str1 := "Welcome to the online portal of GeeksforGeeks"
str2 := "My dog name is Dollar"
str3 := "I like to play Ludo"
// Displaying strings
fmt.Println("String 1: ", str1)
fmt.Println("String 2: ", str2)
fmt.Println("String 3: ", str3)
// Finding the index value
// of the given strings
// Using IndexAny() function
res1 := strings.IndexAny(str1, "G")
res2 := strings.IndexAny(str2, "do")
res3 := strings.IndexAny(str3, "lqxa")
res4 := strings.IndexAny("GeeksforGeeks, geeks", "uywq")
// Displaying the result
fmt.Println("\nIndex values:")
fmt.Println("Result 1: ", res1)
fmt.Println("Result 2: ", res2)
fmt.Println("Result 3: ", res3)
fmt.Println("Result 4: ", res4)
}
输出
String 1: Welcome to the online portal of GeeksforGeeks
String 2: My dog name is Dollar
String 3: I like to play Ludo
Index values:
Result 1: 32
Result 2: 3
Result 3: 2
Result 4: -1
3.IndexByte: 该函数返回原始字符串中给定字节的第一个实例的索引。如果给定的字节在原始字符串中不可用,那么该方法将返回-1。
语法
func IndexByte(str string, b byte) int
这里,str是原始字符串,b是一个字节,我们想找到它的索引值。让我们借助于一个例子来讨论这个概念。
例子
// Go program to illustrate how to find
// the index value of the given bytes
package main
import (
"fmt"
"strings"
)
// Main function
func main() {
// Creating and initializing the strings
str1 := "Welcome to the online portal of GeeksforGeeks"
str2 := "My dog name is Dollar"
str3 := "I like to play Ludo"
// Displaying strings
fmt.Println("String 1: ", str1)
fmt.Println("String 2: ", str2)
fmt.Println("String 3: ", str3)
// Finding the index value of the given bytes
// Using IndexByte() function
res1 := strings.IndexByte(str1, 'c')
res2 := strings.IndexByte(str2, 'o')
res3 := strings.IndexByte(str3, 'q')
res4 := strings.IndexByte("GeeksforGeeks, geeks", 'G')
// Displaying the result
fmt.Println("\nIndex values:")
fmt.Println("Result 1: ", res1)
fmt.Println("Result 2: ", res2)
fmt.Println("Result 3: ", res3)
fmt.Println("Result 4: ", res4)
}
输出
String 1: Welcome to the online portal of GeeksforGeeks
String 2: My dog name is Dollar
String 3: I like to play Ludo
Index values:
Result 1: 3
Result 2: 4
Result 3: -1
Result 4: 0
极客教程