要检查Go中的字符串是否是另一个字符串的子串,请使用contains()方法。
Golang字符串Contains
Golang字符串Contains()是一个内置函数,用于检查substr是否在字符串中。Contains()函数接受两个参数并返回布尔值,即真或假。
要在Go中使用Contains()函数,请导入 strings 包,然后调用contains()方法,并传递两个参数,其中一个是源字符串,另一个是子串,我们需要根据主字符串来检查。
语法
func Contains(s, substr string) bool
参数
第一个参数是一个源字符串,第二个参数是子字符串,我们需要对照主字符串来检查它是否包含。
返回值
strings.Contains()方法返回布尔值true 或false。
字符串Contains()方法的实现
请看下面的代码。
// hello.go
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.Contains("MichaelJackson", "Michael"))
fmt.Println(strings.Contains("MillieBobbyBrown", "Bobby"))
fmt.Println(strings.Contains("AudreyGraham", "Drake"))
fmt.Println(strings.Contains("Jennifer Lopez", "JLo"))
}
输出
go run hello.go
true
true
false
false
通过Contains,我们在一个字符串中搜索指定的子串。然后,我们看是否找到了该字符串。
在上面的例子中,在前两个测试案例中,该子串出现在主字符串中。这就是为什么它返回true。
在最后两个测试案例中,源字符串不包含该子串。这就是为什么它返回false。
我们用其他字符串函数如 ContainsAny()函数来搜索字符。如果在字符串中发现任何一组字符,ContainsAny将返回true。
例2
请看下面的代码。
// hello.go
package main
import (
"fmt"
"strings"
)
func main() {
dataA := "Javascript"
dataB := "Golang"
source := "this is a Golang"
if strings.Contains(source, dataA) {
fmt.Println("JavaScript")
}
if strings.Contains(source, dataB) {
fmt.Println("Golang")
}
}
输出
go run hello.go
Golang
我们有一个包含 "这种语言是Golang "的字符串,但是在这个字符串中没有发现 "Javascript "这个词。所以,我们在第一个测试案例中收到的是false。
当我们调用Contains并搜索字符串**Golang时,**它返回true,因为该字符串包含Golang的子串。所以它返回true并打印出这一行。
当我们需要测试存在性时,**strings.Contains()**比Index()更精确。我们可以检查true和false,而不是Index()返回的表示 "未找到 "的神奇值-1。
本教程就到此为止。