TreeMap练习—字母出现的次数
2015-11-23 22:08
190 查看
需求:统计一个字符串中每个字母出现的个数,并以a(1)b(2)c(3)...这样的形式输出
通过结果发现,每一个字母都有对应的次数。
说明字母和数字之间都有映射关系。
因为有映射关系,所以选择了Map集合
又因为字母有排序,所以选择了具有排序功能的TreeMap
通过结果发现,每一个字母都有对应的次数。
说明字母和数字之间都有映射关系。
因为有映射关系,所以选择了Map集合
又因为字母有排序,所以选择了具有排序功能的TreeMap
import java.util.*; public class MapTest { public static void main(String[] args) { String s = charCount("abdhabahffsd"); System.out.println(s); } public static String charCount(String str) { char[] ch = str.toCharArray(); TreeMap<Character, Integer> treeMap = new TreeMap<Character, Integer>(); int count = 0; for (int i = 0; i < ch.length; i++) { Integer value = treeMap.get(ch[i]); if (value != null) { count = value; } count++; treeMap.put(ch[i], count); count=0; } /*注释部分为另外一种写法 * for (int i = 0; i < ch.length; i++) { * * Integer value = treeMap.get(ch[i]); if (value == null) { * treeMap.put(ch[i], 1); } else { value = value + 1; treeMap.put(ch[i], * value); } } */ Set<Map.Entry<Character, Integer>> entries = treeMap.entrySet(); Iterator<Map.Entry<Character, Integer>> iterator = entries.iterator(); StringBuilder aBuilder = new StringBuilder();//为了输出要求的格式,利用StringBuilder来储存 while (iterator.hasNext()) { Map.Entry<Character, Integer> entry = iterator.next(); Character character = entry.getKey(); Integer integer = entry.getValue(); aBuilder.append(character + "(" + integer + ")"); } return aBuilder.toString(); } }
相关文章推荐
- JDK-Eclipse-Android_SDK-ADT详细图文安装教程(1)
- LeetCode 之 Merge Two Sorted Lists
- 【C++】非递归求二叉树的前序和中序序列
- 南大软院大神养成计划--HTML和CSS基础课程(四)
- 提问的智慧
- 集合相关知识
- 使用(x&y) + ((x^y)>>1) 求平均数
- DICOM:DICOM3.0网络通信协议(三)
- mybatis 一对多
- java集合类ArrayList
- Poj 352 UVA oj 1395 Slim Span 最小生成树应用
- 很实用的linux 上的svn安装和svnserver 的重启
- 没有躲过的坑--正则表达式截取字符串
- Codeforces 599C Day at the Beach 【思维】
- Linux下编译opencv
- Android第三方开源水面波浪波形view:WaveView(电量、能量、容量指示)
- 控制流
- 我的彩票界面
- 没有躲过的坑--正则表达式截取字符串
- 非主流自然语言处理——遗忘算法系列(二):大规模语料词库生成