如何在 Go 中使用 Contains() 函数

2,468 阅读2分钟

Golang String Contains Function | Contains() Function In Go

要检查Go中的字符串是否是另一个字符串的子串,请使用contains()方法。

Golang字符串Contains

Golang字符串Contains()是一个内置函数,用于检查substr是否在字符串中。Contains()函数接受两个参数并返回布尔值,即

要在Go中使用Contains()函数,请导入strings 包,然后调用contains()方法,并传递两个参数,其中一个是源字符串,另一个是子串,我们需要根据主字符串来检查。

语法

func Contains(s, substr string) bool

参数

第一个参数是一个源字符串,第二个参数是子字符串,我们需要对照主字符串来检查它是否包含。

返回值

strings.Contains()方法返回布尔值truefalse。

字符串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。

本教程就到此为止。