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