日期:2014-05-20  浏览次数:20662 次

统计文本文件中单词出现频率(用java集合框架编写)求高手指教??
从文本文件中读取文本,文本文件名被作为命令行参数传递,统计单词不区分大小写。如果第一个字符不是字母,就不统计这个单词,以字典序显示输出,每个单词后面紧跟它的出现次数。

------解决方案--------------------
Java code

import java.io.*;
import java.util.*;

public class Test{
    public static void main(String args[])throws Exception{
        File file = new File("d:\\src\\Test.java");
        display(file);
    }
    public static void display(File file)throws Exception{
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line = null;
        TreeMap<String,Integer> tm = new TreeMap<String,Integer>();
        while((line=br.readLine())!=null){
            line.toLowerCase();
            String reg1 = "\\s+";
            String reg2 ="\\w+";
            String str[] = line.split(reg1);
            for(String s: str){
                
                if(s.matches(reg2)){
                    if(!tm.containsKey(s)){
                        tm.put(s,1);
                    }
                    else{
                        tm.put(s,tm.get(s)+1);
                    }
                }
            }
        }
        System.out.println(tm);
    }
}