重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
使用一个单重的循环扫描这个字符串中的所有字符,对每一个字符的出现次数进行统计,最后输出每个字符的出现次数。
创新互联公司长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为寿宁企业提供专业的网站设计制作、成都网站设计,寿宁网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
Private Sub Command1_Click()
s = InputBox("请输入一个英文字符串:")
Dim a(128) As Integer
For i = 1 To Len(s)
t = Asc(Mid(s, i, 1))
a(t) = a(t) + 1
Next i
For i = 1 To 127
If a(i) 0 Then Print Chr(i); ":"; a(i)
Next i
End Sub
如果是单个字的重复还好说,可是输入词组时,一串字的重复,而且一个字一次事件,这肯定是微软的一个Bug。
办法是有的,把中文字暂时放入字符缓冲中,遇到成双时对半分,前后对比一下,如果相同表示这次输入完成。
Private Sub ListView1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ListView1.KeyPress
Static buffer As String
Static ar(1) As String
If Asc(e.KeyChar) 0 Then
buffer = e.KeyChar
If buffer.Length Mod 2 = 0 Then
ar(0) = buffer.Substring(0, buffer.Length \ 2)
ar(1) = buffer.Substring(buffer.Length \ 2)
If ar(0) = ar(1) Then
Debug.Print(ar(0)) '输出中文
buffer = Nothing
End If
End If
Else
Debug.Print(e.KeyChar) '输出英文
End If
End Sub
把sw.writeline放在循环体里面就好了,至于每行加号码,字符串连接就行