![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
VB textbox字符出现次数并排序
新建一个vb窗体加入两个textbox分别是text1和text2加入一个Command1在text1中输入如下数据王小虎李小冰林小明王小虎李小冰林小明王小虎王小虎杨东点...
新建一个vb窗体
加入两个textbox 分别是text1和text2
加入一个Command1
在text1中输入如下数据
王小虎 李小冰 林小明 王小虎 李小冰 林小明
王小虎 王小虎 杨东
点击Command1时
text2对text1输入的字符进行判断出现次数并排序
text2内容如下显示
出现4次:王小虎 '换行
出现2次:李小冰 林小明 '换行
出现1次:杨东
应该如何写代码呢.?
代码有错啊?验证结果:出现3次有:王小虎
出现2次有:李小冰
出现2次有:林小明
出现1次有:
出现1次有:
王小虎
出现1次有:杨东
为什么出现这样的结果?有哪位高手帮忙修改一下, 展开
加入两个textbox 分别是text1和text2
加入一个Command1
在text1中输入如下数据
王小虎 李小冰 林小明 王小虎 李小冰 林小明
王小虎 王小虎 杨东
点击Command1时
text2对text1输入的字符进行判断出现次数并排序
text2内容如下显示
出现4次:王小虎 '换行
出现2次:李小冰 林小明 '换行
出现1次:杨东
应该如何写代码呢.?
代码有错啊?验证结果:出现3次有:王小虎
出现2次有:李小冰
出现2次有:林小明
出现1次有:
出现1次有:
王小虎
出现1次有:杨东
为什么出现这样的结果?有哪位高手帮忙修改一下, 展开
1个回答
展开全部
Private Type Na
Name As String
Num As Integer
End Type
Dim Names() As Na
Private Sub Command1_Click()
Dim i As Long
Dim j As Long
Dim n As Long
Dim TempStr As String
Dim TempName As String
Text1.Text = Trim(Text1.Text) '去除首位的空格
n = 1
Do While n <= Len(Text1.Text)
TempStr = Mid(Text1.Text, n, 1)
If TempStr <> " " Then
TempName = TempName & TempStr
GoTo NextStr
Else
For j = 0 To i - 1
If Names(j).Name = TempName Then
Names(j).Num = Names(j).Num + 1
TempName = ""
GoTo NextStr
End If
Next
ReDim Preserve Names(i)
Names(i).Name = TempName
Names(i).Num = Names(i).Num + 1
TempName = ""
i = i + 1
End If
NextStr:
n = n + 1
Loop
'处理最后一个名字
For j = 0 To i - 1
If Names(j).Name = TempName Then
Names(j).Num = Names(j).Num + 1
TempName = ""
GoTo GoEnd
End If
Next
ReDim Preserve Names(i)
Names(i).Name = TempName
Names(i).Num = Names(i).Num + 1
TempName = ""
i = i + 1
GoEnd:
For j = 0 To i - 1
Text2 = Text2 & Names(j).Name & ":" & Names(j).Num & vbCrLf
Next
End Sub
Private Sub Form_Load()
Text1.Text = "王小虎 李小冰 林小明 王小虎 李小冰 林小明 王小虎 王小虎 杨东"
End Sub
Name As String
Num As Integer
End Type
Dim Names() As Na
Private Sub Command1_Click()
Dim i As Long
Dim j As Long
Dim n As Long
Dim TempStr As String
Dim TempName As String
Text1.Text = Trim(Text1.Text) '去除首位的空格
n = 1
Do While n <= Len(Text1.Text)
TempStr = Mid(Text1.Text, n, 1)
If TempStr <> " " Then
TempName = TempName & TempStr
GoTo NextStr
Else
For j = 0 To i - 1
If Names(j).Name = TempName Then
Names(j).Num = Names(j).Num + 1
TempName = ""
GoTo NextStr
End If
Next
ReDim Preserve Names(i)
Names(i).Name = TempName
Names(i).Num = Names(i).Num + 1
TempName = ""
i = i + 1
End If
NextStr:
n = n + 1
Loop
'处理最后一个名字
For j = 0 To i - 1
If Names(j).Name = TempName Then
Names(j).Num = Names(j).Num + 1
TempName = ""
GoTo GoEnd
End If
Next
ReDim Preserve Names(i)
Names(i).Name = TempName
Names(i).Num = Names(i).Num + 1
TempName = ""
i = i + 1
GoEnd:
For j = 0 To i - 1
Text2 = Text2 & Names(j).Name & ":" & Names(j).Num & vbCrLf
Next
End Sub
Private Sub Form_Load()
Text1.Text = "王小虎 李小冰 林小明 王小虎 李小冰 林小明 王小虎 王小虎 杨东"
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询