VB.Net表单 - 检查用户输入文本框的重复单词

时间:2014-05-30 19:41:48

标签: vb.net

尽量不要让它变得比它需要的更复杂。

但我需要一个文本框和一个按钮 - 当我点击按钮时代码应该计算单词(我这样做)并显示每个单词以及它出现在字符串中的次数(也就是文本框)

例如 - 你好我的名字是汤姆,汤姆很好

列表框

你好1 我的1 名称1 是2 汤姆2 好1

感谢任何帮助,谢谢(这不是测试等)

2 个答案:

答案 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函数来查找字符串中每个单词的多个实例并对其进行计数。

对于在文本框中输入的整个字符串中找到的每个单词,只需使用带索引功能的循环。