您的位置:首页 > 其它

TreeMap练习—字母出现的次数

2015-11-23 22:08 190 查看
需求:统计一个字符串中每个字母出现的个数,并以a(1)b(2)c(3)...这样的形式输出

通过结果发现,每一个字母都有对应的次数。

说明字母和数字之间都有映射关系。

因为有映射关系,所以选择了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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: