所以我试图在Visual Studio中使用Visual Basic创建一个Windows窗体应用程序,其中有一个文本框,您输入一个句子,另一个文本框,您可以在其中输入该句子中的单词,然后是一个按钮,当它是点击在句子中输入的单词的位置输出到标签上。目前,代码计算了一个单词的出现次数,但是我想对它进行调整,以便计算单词出现的位置(例如,输入" Hello hello hello"" hello"输出1 2 3。
目前的代码低于任何帮助将不胜感激。
Public Class Form1
'first attempt not working
Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
Dim input As String = textBox1.Text
Dim word As String = textBox2.Text
Dim occurrences As Integer = 0
Dim intCursor As Integer = 0
Do Until intCursor >= input.Length
Dim strCheckThisString As String = Mid(LCase(input), intCursor + 1, (Len(input) - intCursor))
Dim intPlaceOfWord As Integer = In-Str(strCheckThisString, word)
If intPlaceOfWord > 0 Then
occurrences += 1
intCursor += (intPlaceOfWord + Len(word) - 1)
Else
intCursor = input.Length
End If
Loop
Positions.text = occurrences
End Sub
End Class
答案 0 :(得分:0)
如果单词始终用空格分隔,则可以先将字符串拆分为单词数组
Dim positions = New List(Of Integer)()
Dim words As String() = input.Split()
For i As Integer = 0 To words.Length - 1
If words(i).ToLower() = "hello" Then
positions.Add(i + 1)
End If
Next
现在列表positions
包含句子中hello-words的位置。
String.Split method有重载,允许您指定其他分隔符,例如逗号。还有一个删除空条目的选项。