Java字符统计并排序 Home » 编程开发 » Java字符统计并排序 Java字符统计 Luo Weifeng 2011-3-28 字符统计可能是大多数人入门编程语言的时候都会遇到的一个题目。可是并不一定每个人都实现的那么完美。昨天帮MM调她的程序,感觉到混乱不堪,就自己写了一个字符统计的东西,因为我一贯的原则是“将神的恩赐发挥到极致”,一直认为把复杂的东西做简单,把简单的问题做完美。呵呵,废话不说,贴代码如下,以殇读者: package test;import java.io.*;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Hashtable;import java.util.List;/** * 对一个保存英文文章的文本文档进行统计,最后给出每个英文字符的出现次数,按降幂排列 */public class SortedCharactersCounter {static final Hashtable<String, Integer> h = new Hashtable<String, Integer>();public static void main(String args[]) {try {FileInputStream fis = new FileInputStream(“str.txt”);InputStreamReader dis = new InputStreamReader(fis);BufferedReader reader = new BufferedReader(dis);String s = null;//统计字母while ((s = reader.readLine()) != null) {for (int i = 0; i < s.length(); i++) {int temp = 0;if (h.containsKey(String.valueOf(s.charAt(i))))temp = h.get(String.valueOf(s.charAt(i))) + 1;elsetemp = 1;h.remove(String.valueOf(s.charAt(i)));h.put(String.valueOf(s.charAt(i)), temp);}}dis.close();//排序List<String> sortedKeys = new ArrayList<String>(h.keySet());Collections.sort(sortedKeys, new Comparator<Object>() {public int compare(Object arg0, Object arg1) {return h.get(arg1) – (h.get(arg0));}});// 输出 for (String str : sortedKeys)System.out.println(“‘” + str + “‘:” + h.get(str));} catch (IOException e) {}}} 灿烂甜美!那一瞬的激-情绽放,催人奋进!胜利,永远属于为梦想奋斗的人新乐吧