package com.test.string;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TesWordCount {
/**½âÌâ˼·
* 1.ÏÈȥȡÎļþµÄÎÊÄÚÈÝ
* 2.¶Ô¶ÁÈ¡ÎļþÖеÄÄÚÈݽøÐÐÕýÔòÆ¥Å䡾a-zA-Z¡¿
* 3.ÓÃMap±£´æ µ¥´Ê ºÍ³öÏֵĴÎÊý
* 4.×Ô¶¨ÒåComparatorÅÅÐò
* 5.°ÑmapÖÐÄÚÈݷŵ½listÖÐ
* 6.¶Ôlist½øÐÐCollections.sort() ½øÐÐ×Ô¶¨ÒåÅÅÐò
* 7¡£Êä³öÅÅÐòºóµÄÄÚÈÝ
*
*
*
*
*
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
@SuppressWarnings("resource")
BufferedReader buffer=new BufferedReader(new FileReader("d:/c.txt"));
StringBuffer sb=new StringBuffer();
String str=null;
while((str=buffer.readLine())!=null){
sb.append(str);
}
buffer.close();
Pattern pattern=Pattern.compile("[a-zA-Z]+");
Matcher matcher=pattern.matcher(sb.toString());
Map
map=new HashMap
(); String word=""; int count; while(matcher.find()){ word=matcher.group(); //System.out.println("sr="+word); if(map.containsKey(word)){ count=map.get(word); map.put(word, count+1); }else{ map.put(word, 1); } } List
> list=new ArrayList
>(map.entrySet()); Collections.sort(list,new MyComparable()); int last=list.size()-1; for(int i=last;i>last-5;i--){ System.out.println("key="+list.get(i).getKey()+" value="+list.get(i).getValue()); } } } class MyComparable implements Comparator
>{ @Override public int compare(Entry
o1, Entry
o2) { // TODO Auto-generated method stub return o1.getValue().compareTo(o2.getValue()); } }