尽量不要让它变得比它需要的更复杂。
但我需要一个文本框和一个按钮 - 当我点击按钮时代码应该计算单词(我这样做)并显示每个单词以及它出现在字符串中的次数(也就是文本框)
例如 - 你好我的名字是汤姆,汤姆很好
列表框
你好1 我的1 名称1 是2 汤姆2 好1
感谢任何帮助,谢谢(这不是测试等)
答案 0 :(得分:1)
indexOf
的另一种方法是使用词典来维护单词和计数。对于大字符串的好处是迭代次数少于使用indexOf
,因为您可以执行以下操作:
1)拆分字符串(假设这只是字符串中的一个循环)
2)迭代数组一次以计算每个单词的出现次数
而对于indexOf,你需要花费一些时间来完成所有事情,具体取决于字符串的大小
字典/地图通常是很好的数据结构。以下是一个简单的控制台应用程序示例:
Dim wordCount As Dictionary(Of String, Integer) = New Dictionary(Of String, Integer)()
Dim exampleString As String = "Hello my name is Tom, Tom is good"
Dim seperator() As String = {" ", ","}
Dim splitString() As String = exampleString.Split(seperator, StringSplitOptions.RemoveEmptyEntries)
For Each s As String In splitString
If wordCount.ContainsKey(s) Then
wordCount(s) = wordCount(s) + 1
Else
wordCount(s) = 1
End If
Next
For Each s As KeyValuePair(Of String, Integer) In wordCount
Console.WriteLine(s.Key + " " + s.Value.ToString())
Next
Console.ReadLine()
但我认为代码确实看起来有点复杂。
答案 1 :(得分:0)
您可以使用带有循环的VB.net IndexOf函数来查找字符串中每个单词的多个实例并对其进行计数。
对于在文本框中输入的整个字符串中找到的每个单词,只需使用带索引功能的循环。