如何在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