资源简介

java实现的一个接收从命令行读入一段英文文本,统计总次数,统计词频的程序,统计结果以txt文件格式保存,使用了正则表达式,个人感觉不错!

资源截图

代码片段和文件信息

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.StringTokenizer;

public class Item implements Comparable{
        private String word; //用于存储单词
        private int    frequence;  //map表中单词序列
        private int count; //统计单词总数
        public String getWord(){  //返回输入字符
            return word;
        }
        
        public int getFreq(){   //得到序列
            return frequence;
        }
        
        public void setWord(String s){  //设置字符
            word = s;
        }
        
        public void setFreq(int n){  //设置序列
            frequence = n;
        }
        
        public int compareTo(object b){   //字符比较方法
            Item t = (Item)b;
            return t.getFreq()-this.getFreq();
        }
    public HashMap map = new HashMap();
    /**
     * 单词统计方法,更新map表中的键值对
     * */
    public void  Count(String txt){
        StringTokenizer t = new StringTokenizer(txt“. “);
        while(t.hasMoreTokens()){
            String word = t.nextToken();
            
            if(map.get(word)==null){
             count++;
                Item item = new Item();
                item.setFreq(1);
                item.setWord(word);
                map.put(worditem);
            }else{
             count++;
                Item item = map.get(word);
                item.setFreq(item.getFreq()+1);
                map.put(worditem);
            }
        }
        /**
         * 遍历map表,进行统计情况的输出
         * */
        List list = new ArrayList(map.values());
        Collections.sort(list);
        System.out.println(“该段文本共包含单词“+count+“个“);
        System.out.println(“该段文本的单词统计结果如下 :“);
        for(Item item : list){
            System.out.println(item.getWord() + “ “ + item.getFreq());
        }
    }
    /**
     * 主程序启动
     * */
    public static void main(String[] args) throws IOException{
        System.out.println(“请输入英文文本:“+“\n“);
        
     InputStreamReader in=new InputStreamReader(System.in );//接收用户命令行输入
        BufferedReader output=new BufferedReader(in);
    //    StringBuffer sbuf =new StringBuffer();
        String br=output.readLine();
// s1=sbuf.toString();
        Item a = new Item();
        a.Count(br);
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2011-10-10 22:44  Input\.classpath

     文件        381  2011-10-10 22:44  Input\.project

     文件        629  2011-10-10 22:44  Input\.settings\org.eclipse.jdt.core.prefs

     文件       3436  2011-10-12 08:04  Input\bin\Item.class

     文件       2579  2011-10-11 10:18  Input\src\Item.java

     目录          0  2011-11-06 09:04  Input\.settings

     目录          0  2011-11-06 09:04  Input\bin

     目录          0  2011-11-06 09:04  Input\src

     目录          0  2011-11-06 09:04  Input

----------- ---------  ---------- -----  ----

                 7326                    9


评论

共有 条评论