java统计abacbacdadbc中的每个字母出现的次数,输出格式是:a(4)b(3)c(3)d(2)

 1 import java.util.Iterator;
 2 import java.util.Map;
 3 import java.util.Set;
 4 import java.util.TreeMap;
 5 /*
 6  * 统计abacbacdadbc中的每个字母出现的次数,输出格式是:a(4)b(3)c(3)d(2)
 7  * 
 8  * 选中TreeMap的原因是:key不重复且按顺序排序取出
 9  * 
10  * 思路:
11  * 1.将字符串abacbacdadbc转换成字符数组
12  * 2.分别取字符,与TreeMap中的key进行比较
13  *   2.1 如果TreeMap中存在对应的字符,则取出并自增,再存入TreeMap
14  *   2.2 如果TreeMap中不存在对应的字符,则直接存入该字符,value=1
15  */
16 
17 public class A3B1C2_TreeMapTest {
18 
19     public static void main(String[] args) {
20 
21         TreeMap<String, Integer> tm=new TreeMap<>();
22         String string="abacbacdadbc";
23         char[] ch=string.toCharArray();
24         
25         for(char r :ch){
26             //tm.put(String.valueOf(r), 1);
27             //System.out.println(r);    
28             if(compareKey(r, tm))
29             {
30                 int i=tm.get(String.valueOf(r));
31                 i++;
32                 tm.put(String.valueOf(r), i);
33             }else {
34                 tm.put(String.valueOf(r), 1);
35             }
36         }
37         System.out.println(tm);    
38         Set<Map.Entry<String, Integer>> entrySet=tm.entrySet();
39         Iterator<Map.Entry<String, Integer>> iterator=entrySet.iterator();
40         while(iterator.hasNext()){
41             Map.Entry<String, Integer> me=iterator.next();
42             String key=me.getKey();
43             int value=me.getValue();
44             System.out.print(key+"("+value+")");            
45         }
46         
47     }
48     public static boolean compareKey(char c,TreeMap<String, Integer> treeMap){
49         if (treeMap.containsKey(String.valueOf(c))) {
50             return true;
51         }
52         return false;
53     }
54 
55 }

 

posted @ 2016-07-25 11:09  魔流剑  阅读(423)  评论(0编辑  收藏  举报