js获取字符串出现次数最多_利用字典,统计出给定字符串中每个字符出现的次数...

c294f243a7bd1bc2679fc35cfaad3c4d.png

大家好,今日我们继续讲解VBA数组与字典解决方案,今日讲解第73讲内容:利用字典,统计出给定字符串中每个字符出现的次数.

在VBA的利用中,字典可以利用在方方面面,今日我们来讲一个利用字典统计给定字符中字符数的方案,有点类似于WORD文档中,统计字数的程序。

实例,在下面的E1单元格中有一个字符串,要统计一下每个字符出现的次数,我们看看利用字典来如何做到。

cff6e6207bb2bf7594c29f6df6298577.png

思路,我们要分别截取字符串的每个字符,放到字典中,在放的同时统计出现的次数。仍是利用字典的排重功能和统计功能,下面看我给出的代码。

Sub mynzsz_73() '第73讲 利用字典,统计出给定字符串中每个字符出现的次数

Sheets("73").Select

'字符串取自第五个单元格的数据

mystr = Cells(1, 5)

'创建字典

Set mydic = CreateObject("scripting.dictionary")

'将字符串数据装入字典,并计数

For i = 1 To Len(mystr)

temp = Mid(mystr, i, 1)

If Not mydic.exists(temp) Then

mydic.Add temp, 1

Else

mydic(temp) = mydic(temp) + 1

End If

Next

'清空指定区域

[a:b].ClearContents

'回填数据

[a1:b1] = Array("字符", "出现次数")

[a2].Resize(mydic.Count, 1) = WorksheetFunction.Transpose(mydic.keys)

[b2].Resize(mydic.Count, 1) = WorksheetFunction.Transpose(mydic.items)

Set mydic = Nothing

End Sub

代码截图:

d2fbfb1dbea8edd3ba67384d7338eb19.png

代码讲解:

1 上述代码实现了从一个字符串中统计字符数的功能,首先将字符串放到mystr 中,利用Mid(mystr, i, 1) 函数来分别提取每个字符,放到字典中,用键值统计出现的次数.

2 temp = Mid(mystr, i, 1) 从mystr的字符串中第的位置提取一个字符,也就是说将字符串的每个字符都要提取出来。

3 If Not mydic.exists(temp) Then

mydic.Add temp, 1

Else

mydic(temp) = mydic(temp) + 1

End If

将每个字符放到字典的键中,键值计数,每次出现重复值加1.

4 '清空指定区域

[a:b].ClearContents

'回填数据

[a1:b1] = Array("字符", "出现次数")

[a2].Resize(mydic.Count, 1) = WorksheetFunction.Transpose(mydic.keys)

[b2].Resize(mydic.Count, 1) = WorksheetFunction.Transpose(mydic.items)

上述预计清空指定区域,回填数据,这里利用了分别填键和键值的方法。当然,还可以有其他的方法。

5 Set mydic = Nothing

上述代码清空内存.

下面看代码的运行:

e46f352ac4eb37f80c210245138293e1.png

今日内容回向:

1 如何从字符串中统计每个字符出现的次数?

2 在数据回填时有哪些方法可以利用?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值