如何在Go语言中检查字符串是否包含子字符串?
我们知道子字符串是字符串中连续的字符序列,为了检查字符串是否包含子字符串,我们有两个可用的选项。
第一种方法是使用名为**Contains()**的内置函数,第二种方法是使用自己编写的逻辑。
**strings**包的**Contains()**函数语法如下所示。
func Contains(s, substr string) bool
在上面的语法中,函数**Contains()**内有两个参数。第一个参数是我们试图查找模式的字符串,第二个参数是我们试图查找的模式。
让我们首先考虑第一种方法。
示例1
考虑以下代码。
package main
import (
"fmt"
"strings"
)
func main() {
var name string = "TutorialsPoint"
fmt.Println(strings.Contains(name, "Point"))
}输出
如果我们使用命令**go run main.go**运行上面的代码,那么我们将在终端中得到以下输出。
true
现在我们已经看到了在上述字符串中查找子字符串时最常用的方法,让我们考虑一个同样有效的代码,但逻辑是自己编写的。
示例2
考虑以下代码。
package main
import (
"fmt"
)
func main() {
var name string = "TutorialsPoint"
var wordToSearch string = "Point"
res := checkIfExists(name, wordToSearch)
if res {
fmt.Println(wordToSearch, "is present inside the string", name)
} else {
fmt.Println(wordToSearch, "is not present inside the string", name)
}
}
func checkIfExists(name, word string) bool {
l := len(name) - len(word)
for i := 0; i <= l; i++ {
if patternMatch(name, i, word) {
return true
}
}
return false
}
func patternMatch(name string, index int, word string) bool {
i := index
for j := 0; j < len(word); j++ {
if name[i] != word[j] {
return false
}
i++
}
return true
}在上面的代码中,函数**checkIfExists()**用于在字符串中查找模式,该函数又调用**patternMatch**函数。
输出
如果我们使用命令**go run main.go**运行上面的代码,那么我们将在终端中得到以下输出。
Point is present inside the string TutorialsPoint
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP