黑马程序员技术交流社区

标题: "sdfgzxcvasdfxcvdf"获取该字符串中的字母出现的次数 [打印本页]

作者: 2015黑马之路    时间: 2015-4-16 13:36
标题: "sdfgzxcvasdfxcvdf"获取该字符串中的字母出现的次数
如题  希望打印结果:a(1)c(2).....
该如何编程?

作者: 2015黑马之路    时间: 2015-4-16 13:48
package com.ithemai.map;

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

public class TreeMapDemo {
        public static void main(String[] args) {
               
                //求一个字符串中每个字符出现的次数  并按字符顺序排序
                String source = "sdfasfasdfadf";
                String result = countChar(source);
                System.out.println(result);
        }
        public static String countChar(String souce){
                String res = "";
                //转为字符数组
                char[] chars = souce.toCharArray();
                //使用treemap记录字符和其出现次数
                TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
                for (int i = 0; i < chars.length; i++) {
                        if( (chars[i] >= 'a' || chars[i] <= 'z') && (chars[i] >= 'A' || chars[i] <='Z')){
                                if(tm.containsKey(chars[i])){
                                        Integer count = tm.get(chars[i]);
                                        count++;
                                        tm.put(chars[i], count);
                                }else{
                                        tm.put(chars[i], 0);
                                }
                        }
                }
                //格式化输出
                Set<Entry<Character,Integer>> entrySet = tm.entrySet();
                 Iterator<Entry<Character, Integer>> entryIte = entrySet.iterator();
                 while(entryIte.hasNext()){
                         Entry<Character,Integer> entry = entryIte.next();
                         res+=entry.getKey()+"("+entry.getValue()+")";
                 }
                return res;
        }
}





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