簡體   English   中英

檢查字符串是否包含Go中的切片中包含的子字符串

[英]Checking if a string contains a substring contained in a slice in Go

我有一個子字符串數組和一部分字符串。 我想檢查字符串是否包含mySliceOfSubstrings切片中的任何子字符串。

mySliceOfSubstrings := []string{"hello", "world"}
mySliceOfStringsToCheck := []string{"hello mars", "hey mars"}

有沒有下面將循環放入循環的更好的方法呢?

for _, string := range mySliceOfStringsToCheck {

     for _, substring := range mySliceOfSubstrings {
          result := strings.Contains(string, substring)

     }  

}

如果我想針對兩個不同的子字符串切片檢查字符串怎么辦?

除非數據量很大,並且您正在尋找對現有O(N ^ 2)解決方案進行算法上的改進,否則您的代碼很好。

對於非常大的數據,您可以考慮使用一些更復雜的數據結構。 例如,Go具有https://golang.org/pkg/index/suffixarray程序包,該程序包使您可以對字符串進行檢查,預處理,然后在對數時間內執行子字符串查找。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM