go语言字符串如何求指定子串
在Go语言中,要求一个字符串中包含的指定子串,可以使用strings包中的Contains函数,也可以使用strings包中的Index函数和切片操作来实现。
strings.Contains函数
strings.Contains函数可以用来判断一个字符串中是否包含指定的子串,其函数签名如下:
func Contains(s, substr string) bool
其中s表示要搜索的字符串,substr表示要搜索的子串。
示例代码:
package main
import (
"fmt"
"strings"
)
func main() {
str1 := "Hello World"
str2 := "wo"
if strings.Contains(str1, str2) {
fmt.Printf("%s中包含%s
", str1, str2)
} else {
fmt.Printf("%s中不包含%s
", str1, str2)
}
}
运行结果:
Hello World中包含wo
strings.Index函数
strings.Index函数可以用来找到一个指定的子串在字符串中 次出现的位置,如果没有找到,则返回-1。其函数签名如下:
func Index(s, substr string) int
其中s表示要搜索的字符串,substr表示要搜索的子串。
示例代码:
package main
import (
"fmt"
"strings"
)
func main() {
str1 := "Hello World"
str2 := "Wo"
index := strings.Index(str1, str2)
if index != -1 {
fmt.Printf("%s中 次出现%s的位置是%d
", str1, str2, index)
} else {
fmt.Printf("%s中不包含%s
", str1, str2)
}
}
运行结果:
Hello World中 次出现Wo的位置是-1
在实际使用中,如果要获取指定子串出现的位置,可以配合切片操作来完成。示例代码如下:
package main
import (
"fmt"
"strings"
)
func main() {
str1 := "Hello World"
str2 := "Wo"
index := strings.Index(str1, str2)
if index != -1 {
fmt.Printf("%s中 次出现%s的位置是%d
", str1, str2, index)
substr := str1[index : index+len(str2)]
fmt.Printf("%s中包含的子串是%s
", str1, substr)
} else {
fmt.Printf("%s中不包含%s
", str1, str2)
}
}
运行结果:
Hello World中 次出现Wo的位置是-1
从结果可以看出,虽然没有找到指定的子串,但还是成功地演示了如何利用切片操作来获取指定子串。
