Java集合

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

/**
 * 單詞統計
 * 利用map中的key唯一的性質
 * Created by Administrator on 2017/2/26 0026.
 */
public class CountNum {
    public static void main(String[] args) {
        CountNum.charCount("a+ad*f#sa$afs&edse");
    }

    public static void charCount(String str) {
        //轉化爲Array數組
        char[] chars = str.toCharArray();
        TreeMap<Character, Integer> treeMap = 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')) {
                continue;
            }
            Integer value = treeMap.get(chars[i]);
            if (!treeMap.containsKey(chars[i])) {
                treeMap.put(chars[i], 1);
            } else {
                value = value + 1;
                treeMap.put(chars[i], value);
            }
        }
        //遍歷打印 方法一
        Set set = treeMap.keySet();
        for (Iterator iterator = set.iterator(); iterator.hasNext(); ) {
            Character cha = (Character) iterator.next();
            int value = treeMap.get(cha);
            System.out.println("key:" + cha + "\tnums:" + value);
        }
        //方法二
        /*
        StringBuilder sb = new StringBuilder();
        Set<Map.Entry<Character,Integer>> se = treeMap.entrySet();
        Iterator<Map.Entry<Character,Integer>> it = se.iterator();
        while (it.hasNext()){
            Map.Entry<Character,Integer> me = it.next();
            Character key = me.getKey();
            Integer value = treeMap.get(key);
            sb.append(key+":["+value+"]");
        }
        System.out.println(sb.toString());
        */
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章