Arrays Vb.net:在一个大字符串中记录模式的多个索引
我目前被困在一个项目中,在这个项目中,我得到了一个大的随机字符串,比如:“cafeedbeef”(可能是900多个字符),我必须得到一个模式的多个实例的索引,然后将它们存储到一个动态数组中 我需要模式“EE”的索引,应该是8和18(我想是吧?)。然后我需要将这些索引记录在动态数组中,如“EE_array()” 我发现这个代码:Arrays Vb.net:在一个大字符串中记录模式的多个索引,arrays,vb.net,search,indexof,Arrays,Vb.net,Search,Indexof,我目前被困在一个项目中,在这个项目中,我得到了一个大的随机字符串,比如:“cafeedbeef”(可能是900多个字符),我必须得到一个模式的多个实例的索引,然后将它们存储到一个动态数组中 我需要模式“EE”的索引,应该是8和18(我想是吧?)。然后我需要将这些索引记录在动态数组中,如“EE_array()” 我发现这个代码: Dim i As Integer = 0 Dim EE_Array() As String Dim SearchWithinThis As Str
Dim i As Integer = 0
Dim EE_Array() As String
Dim SearchWithinThis As String = " C AF EE D B EE F"
Dim SearchForThis As String = "EE"
Dim First As Integer = SearchWithinThis.IndexOf(SearchForThis)
Dim Array(i) = First
然后我重复代码,搜索另一个模式,并将其存储在另一个数组中
这很好,但只是第一次。我需要把它放在一个循环中,让增量I和redim保留数组,使其变大,并继续运行,直到它到达字符串的末尾(我认为是-1)。尝试以下代码
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
Private子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击
以字符串=“C AF EE D B EE F”的形式显示搜索结果
将此搜索设置为String=“EE”
将索引设置为列表(整数)=获取索引(searchWithis,SearchForThis)
Dim EE_数组()为整数=index.ToArray
端接头
私有函数GetIndexes(ByVal SearchWithThis As String,ByVal SearchForThis As String)作为列表(整型)
将结果变暗为新列表(整数)
Dim i As Integer=SearchWithinThis.IndexOf(SearchForThis)
而(i-1)
结果.添加(i)
i=SearchWithinThis.IndexOf(SearchForThis,i+1)
结束时
返回结果
端函数
函数GetIndexes返回包含索引的整数列表您需要一个循环。看看这个:是的,a循环是唯一的方法。这太完美了。我可以只使用列表,而不必为数组的额外步骤而烦恼。:)但是,如果我搜索say“EE”,然后搜索每个“E”的单个实例,将它们添加到“EE_数组”,会怎么样?目前,我将不得不运行该函数两次,但附加到相同的列表中。是否有一种方法可以导入多个搜索条件?