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

时间:2019-01-29 22:47:37

标签: 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)

     }  

}

如果我想针对两个不同的子字符串切片检查字符串怎么办?

1 个答案:

答案 0 :(得分:0)

除非数据量很大,并且您正在寻找对现有O(N ^ 2)解决方案的算法改进,否则您的代码就可以了。

对于非常大的数据,您可以考虑使用一些更复杂的数据结构。例如,Go提供了https://golang.org/pkg/index/suffixarray软件包,可让您对字符串进行检查,预处理,然后在对数时间内执行子字符串查找。