搜索和计算文本框字符串中单词的出现次数

时间:2015-11-28 15:30:20

标签: vb.net

现在我有两个文本框。一个是输入,另一个是文本字符串。它功能完美。有没有办法摆脱输入框并有"搜索"代码中的单词,所以当我点击一个按钮时,它会给出结果。

Private Function FindWords(ByVal TextSearched As String, ByVal Paragraph As String) As Integer

    Dim location As Integer = 0
    Dim occurances As Integer = 0
    Do
        location = TextSearched.IndexOf(Paragraph, location)
        If location <> -1 Then
            occurances += 1
            location += Paragraph.Length
        End If
    Loop Until location = -1
    Return occurances
End Function


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Label1.Text = TextBox2.Text ' display result
    Label2.Text = FindWords(TextBox1.Text, TextBox2.Text)
    ' MsgBox("The word " & TextBox2.Text & " has occured " & FindWords(TextBox1.Text, TextBox2.Text) & " times!!")
End Sub

1 个答案:

答案 0 :(得分:0)

在项目的编译设置中,您可能会看到一些小问题,即您打开选项严格。您的函数返回一个整数。要将其正确地分配给文本框标签,您应该将 .ToString 添加到作业的末尾,如下所示

Label2.Text = FindWords(TextBox1.Text, TextBox2.Text).ToString

所以在编写代码时留下代码,在这个子代中,你只想传递一个字符串作为要查找的文本的参数?

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Label1.Text = TextBox2.Text ' display result
    Label2.Text = FindWords(TextBox1.Text, TextBox2.Text)
    ' MsgBox("The word " & TextBox2.Text & " has occured " & FindWords(TextBox1.Text, TextBox2.Text) & " times!!")
End Sub

只需将其更改为

即可
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    dim searchString as string="Hello" 'or whatever string you want to use
    Label1.Text = TextBox2.Text ' display result
    Label2.Text = FindWords(searchString, TextBox2.Text)
    ' MsgBox("The word " & TextBox2.Text & " has occured " & FindWords(TextBox1.Text, TextBox2.Text) & " times!!")
End Sub

但是如果你想显示一个包含出现次数的消息框,你可能会更好地改变它以使你的函数只执行一次 - 比如

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    dim searchCount as Integer
    dim searchString as string="Hello" 'or whatever string you want to use
    Label1.Text = TextBox2.Text ' display result
    searchCount = FindWords(searchString, TextBox2.Text)
    Label2.Text = searchcount.ToString
    ' MsgBox("The word " & TextBox2.Text & " has occured " & searchcount.Tostring & " times!!")
End Sub