黑马程序员技术交流社区

标题: 测试中的一道题,感觉比较有代表性,而且所涵盖的知识点也比较多,就给大家分享一下 [打印本页]

作者: 菜鸟的求学路    时间: 2015-5-21 17:57
标题: 测试中的一道题,感觉比较有代表性,而且所涵盖的知识点也比较多,就给大家分享一下
package com.itheima;

import java.util.Set;
import java.util.TreeMap;

/**
* 3、 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
* 分析:
*                 从其输出格式可以看出,其结果的表达方式是键值对的形式,也即: a --> 2;b-->1;k-->2 ......
*                 因此需要一个Map集合,并且结果的输出是按一定顺序(a-b-c)输出,所以定义一个TreeMap集合
*/
public class Test3 {
        public static void main(String[] args) {
//                封装字符串
                String  str = "abcdekka27qoq";
//                定义一个Map集合
                TreeMap<Character,Integer> trMap = new TreeMap<>();
//                遍历字符串中的每一个字符
               
                for(int i=0;i<str.length();i++){
                        char  key =  str.charAt(i);
                        if(!trMap.containsKey(key)){
                                trMap.put(key, 1);
                        }else {
                                int temp =  trMap.get(key);
                                 temp++;
                                trMap.put(key, temp);
                        }
                }
//                遍历集合,首先获取所有的键的集合
                Set<Character> set = trMap.keySet();
//                遍历set集合,并输出对应的值
                for(Character c : set){
                        System.out.print(c+"("+trMap.get(c)+")");
                }
               
        }

}

作者: zhangyq    时间: 2015-5-22 02:19
不错!!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2