Vb.net:在大字符串中记录多个模式索引

时间:2016-02-11 11:36:57

标签: arrays vb.net search indexof

我目前停留在一个项目,我给了一个大的随机字符串,例如:“C AF EE DDB EE F”(可能是900多个字符),我必须得到一个模式的多个实例的索引,然后将它们存储到动态数组中。

就像我需要模式“EE”的索引一样,它应该是8和18(我想?)。然后我需要在动态数组中记录这些索引,如“EE_Array()”

我找到了这段代码:

argc

然后我重复代码,搜索另一个模式,将其存储在另一个数组中。

哪个有效,但仅适用于第一个实例。我需要把它放在一个循环中并且有增量i并且redim保留数组使它变大并继续前进直到它到达字符串的末尾(我认为是-1)。

1 个答案:

答案 0 :(得分:2)

尝试以下代码

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim SearchWithinThis As String = "  C   AF   EE   D B EE   F"
    Dim SearchForThis As String = "EE"

    Dim Indexes As List(Of Integer) = GetIndexes(SearchWithinThis, SearchForThis)

    Dim EE_Array() As Integer = Indexes.ToArray
End Sub

Private Function GetIndexes(ByVal SearchWithinThis As String, ByVal SearchForThis As String) As List(Of Integer)
    Dim Result As New List(Of Integer)

    Dim i As Integer = SearchWithinThis.IndexOf(SearchForThis)

    While (i <> -1)
        Result.Add(i)
        i = SearchWithinThis.IndexOf(SearchForThis, i + 1)
    End While

    Return Result
End Function

函数GetIndexes返回包含索引的整数列表