利用集合類,其中按照map中value排列需要考慮一下具體思路,最后結合list完成排列
/** * Created by changqing on 2017/3/4. */import java.io.*;import java.util.*;public class test { public static void main(String [] args) throws Exception { System.out.PRintln("starting to read file"); File file=new File("test.txt"); BufferedReader bf=new BufferedReader(new FileReader(file)); String line; String reg="//s+";//正則表達式,把句子劃分為一個個單詞 TreeMap<String,Integer> tm= new TreeMap<String, Integer>(); while((line=bf.readLine())!=null) { String []strs=line.split(reg); for(String str:strs) { str=str.replaceAll("[//p{Punct}//pP]", ""); //去掉單詞中含有的標點符號 if(!tm.containsKey(str)) { tm.put(str,1); } else tm.put(str,tm.get(str)+1); } } List<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(tm.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() { public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return (o2.getValue() - o1.getValue()); } }); for (int i = 0; i <20 ; i++) { System.out.println(list.get(i).getKey()); } }}
新聞熱點
疑難解答