1

好的,所以我想检查一个大字符串是否包含数组中许多其他字符串中的一个(任何)。

我可以遍历该数组并执行“如果最大环.contains(arrayitem) 执行某些操作然后退出”,但我觉得这可能效率低下,尤其是在字符串数组非常大的情况下。

另外,性能会根据找到的字符串在数组中的位置而有所不同。有没有更好的方法来做到这一点?

4

2 回答 2

3

我认为最好的方法是使用正则表达式

Imports System.Text.RegularExpressions

Dim arrayitems As New Regex(arrayitem(0) & "|" & arrayitem(1) & "|"  & arrayitem(2))

If arrayitems.IsMatch(largestring) Then 
  'Exists
  '...
End If

另一种选择是使用 IndexOf (理论上)比 Contains 略快

Dim str As String = "Hello World."

' Does the string contain "World"?
If (str.IndexOf("World") <> -1) Then
  Console.Write("string contains 'World'")
Else
  Console.Write("string does not contain 'World'")
End If
于 2012-06-28T00:29:47.330 回答
1

暗淡结果 As String() = Array.FindAll(arr, Function(s) s.Contains("whatever"))

于 2012-06-27T20:25:38.460 回答