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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dengxuye 中级黑马   /  2016-3-31 18:40  /  492 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,
输出格式为:a(2)b(1)k(2)...

2 个回复

倒序浏览
本帖最后由 11210107 于 2016-3-31 20:11 编辑

自己写的,可能有点麻烦。
public static String getCharTimes(String string){
                String str = "";                //返回的字符串
                int count;                                //计数器
                char c;
                for(int i = 0;i < string.length();i++){
                        count = 0;
                        c = string.charAt(i);
                        if((c < 97 && c>=65) || (c >= 97&&c <= 122)){
                                
                                for(int j = 0;j < string.length();j++){
                                        if(c == string.charAt(j)){
                                                count++;
                                        }
                                }
                                if(str.indexOf(c) != -1){ //如果待返回字符串str已经存在该字符c,结束当前循环避免重复。
                                        continue;
                                }
                                str += c + "("+count+")";
                        }
                }
                return str;
        }

评分

参与人数 1黑马币 +1 收起 理由
r1503882525 + 1 很给力!

查看全部评分

回复 使用道具 举报 1 0
public static void main(String[] args) {
        String str="abcdekka27qoq";
        char[] arr = str.toCharArray();
        TreeMap<Character,Integer> t=new TreeMap<>();
        for (Character c : arr) {
            Integer i = t.get(c);
            i=!t.containsKey(c)?1:i+1;
            t.put(c, i);
        }
        for (char c : t.keySet()) {
            System.out.print(c+"("+t.get(c)+")");
        }
    }
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马