1

目前我正在使用 InStr 在字符串中查找字符串,我是 VB.NET 的新手,想知道是否可以使用 InStr 搜索字符串中数组的每个元素,或者类似这样的函数:

InStr(string, array)

谢谢。

4

5 回答 5

4

你需要循环:

Dim bFound As Boolean = False
For Each elem As String In array
    If myString.Contains(elem) Then
        bFound = True
        Exit For
    End If
Next

您可以将其转换为一个函数以轻松地多次调用它:

Public Function MyInStr(myString As String, array() As String) As Boolean
    For Each elem As String In array
        If myString.Contains(elem) Then return True
    Next

    return false
End Function

然后:

MyInStr("my string text", New String() {"my", "blah", "bleh"})
于 2013-04-25T11:33:57.943 回答
3

这是LINQ解决方案:

Dim a() = {"123", "321", "132"}
Dim v = a.Select(Function(x) InStr(x, "3")).ToArray
MessageBox.Show(String.Join(",", v)) '3,1,2
于 2013-04-25T12:01:32.520 回答
2

将 SysDragon 的答案转换为经典的 asp:

你需要循环:

Dim bFound
bFound = False

For Each elem In myArray
    If InStr(myString, elem)>=0 Then
        bFound = True
        Exit For
    End If
Next

您可以将其转换为一个函数以轻松地多次调用它:

Function MyInStr(myString, myArray)
    Dim bFound
    bFound = false

    For Each elem In myArray
        If InStr(myString, elem)>=0 Then
            bFound = True
            Exit For
        End If
    Next

    MyInStr = bFound
End Function

然后:

MyInStr("my string text", Array("my", "blah", "bleh"))
于 2013-04-25T11:59:35.167 回答
1

如果您正在寻找在字符串数组中的任何项目中搜索字符串,那么您可以使用array.find(<T>)method. 在此处查看更多信息:http: //msdn.microsoft.com/en-IN/library/d9hy2xwa%28v=vs.90%29.aspx

于 2013-04-25T11:35:26.300 回答
0

Instr返回一个整数,指定一个字符串在另一个字符串中第一次出现的起始位置。

参考这个

要在字符串中查找字符串,您可以使用其他方法

这是一个同时突出显示您搜索的所有文本的示例,但如果这不是您想要的,您必须自己解决它。

Sub findTextAndHighlight(ByVal searchtext As String, ByVal rtb As RichTextBox)
Dim textEnd As Integer = rtb.TextLength
Dim index As Integer = 0
Dim fnt As Font = New Font(rtb.Font, FontStyle.Bold)
Dim lastIndex As Integer = rtb.Text.LastIndexOf(searchtext)
While (index < lastIndex)
  rtb.Find(searchtext, index, textEnd, RichTextBoxFinds.WholeWord)
  rtb.SelectionFont = fnt
  rtb.SelectionLength = searchtext.Length
  rtb.SelectionColor = Color.Red
  rtb.SelectionBackColor = Color.Cyan
  index = rtb.Text.IndexOf(searchtext, index) + 1
End While
End Sub

此方法在 RichTextBox2 中搜索文本“男孩”,将文本颜色更改为红色,将背景颜色更改为青色

 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
 findTextAndHighlight("boy", RichTextBox2)   
 End Sub
于 2013-04-25T11:30:04.387 回答