A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 327037419 中级黑马   /  2015-9-8 10:22  /  426 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

基础考试题:


package test97;

import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;

/**
* 2、 取出一个字符串中字母出现的次数。 如:字符串:"abcdekka27qoq" , 输出格式为:a(2)b(1)k(2)...<Character,
* Integer>
*
* * 思路: 遍历字符串,拿每一个字符到TreeMap中去找, 如果存在则把该字符和值加1作为键和值存储到集合中;
* 如果不存在则把该字符和1作为键和值存储到集合中。
*
* @author Administrator
*
*/
public class Test980 {

        private static String str = "abcdekka27qoq";

        public static void main(String[] args) {
                checkStr();
        }

        private static void checkStr() {

                String s = "abcdekka27qoq";
                char[] cs = s.toCharArray();

                TreeMap<Character, Integer> map = new TreeMap<>();// 创建一个TreeMap
                for (char c : cs) {// 遍历 因为你数据是数组所以只能用for增强
                        Character key = c;
                        Integer value = map.get(c);
                        if (value == null) {// 判断,如果值为空,则向集合中添加(key,1),如果不为空则添加
                                                                // (key,value+1)
                                map.put(key, 1);
                        } else {
                                map.put(key, value + 1);
                        }
                }
                //System.out.println(map);
                 
                // 遍历集合

        /*        Set<String> set = map.keySet();map里没有数据
                Iterator<String> it = set.iterator();

                while (it.hasNext()) {
                        String s = (String) it.next();// 这是Key
                        Integer integer = map.get(s);//这是value
                        if (s==null) {
                                        map.put(s, 1);
                        }else {
                                map.put(s, integer+1);
                        }
               
                }*/
                                //取出键值对
                Set<Map.Entry<Character,Integer>> entrySet = map.entrySet();
                        //用entrySet里的迭代器方法
                        Iterator<Map.Entry<Character, Integer>> iterator = entrySet.iterator();
                       
                        while (iterator.hasNext()) {
                                Map.Entry<Character,Integer> entry = iterator
                                                .next();
                               
                                                //Map.Entry的方法
                                                Character key = entry.getKey();
                                                Integer value = entry.getValue();
                                               
                                               
                                                System.out.print(key + "("+value +")");// 按规定的格式输出
                        }
               
               
               
               
               

        }
}

3 个回复

倒序浏览
学习了。。。。。。。。。。
回复 使用道具 举报
好厉害,赞一个
回复 使用道具 举报
赞一个...............
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马