Statistics.java

import java.io.*;

public class Statistics {
    
    private String word="";
    private String[] str = new String[500];
    private int[] count = new int[500];
    private int i=0;        //统计现有单词的数量
    
    //读取文件内容
    public void readFile( String filename ){
        File file = new File( filename );
        Reader reader = null;
        try{
            reader = new InputStreamReader( new FileInputStream( file ) );
            int tempchar;
            while((tempchar = reader.read()) != -1 ){
                extractWord( tempchar );                            //传每个字符
            }
            reader.close();
        }
        catch( Exception e ){
            e.printStackTrace();
        }
    }
    
    //提取单词
    public void extractWord( int tempchar ){
        if( ((tempchar>65&&tempchar<90)||(tempchar>97&&tempchar<122)) ){    //tempchar为字母时,追加
            word += (char)tempchar;
        }
        else if((!"".equals(word))){
            statisticalWord();                                                //统计
            word="";
        }
    }
    
    //统计单词
    public int statisticalWord(){
        int j=0;
        for( ; j<i; j++ ){
            if( str[j].equals(word) ){
                count[j]++;                                            //计次加一
                return 0;
            }
        }
        str[j]=word;                                                //添加单词
        count[j]++;
        i++;
        return 0;
    }
    
    //将统计信息显示
    public void display(){
        for(int j=0; j<i; j++ ){
            System.out.println(str[j]+"\t"+count[j]);
        }
    }
    
}

Words.java

public class Words {
    public static void main( String [] args ){
        String filename = "C:/file.txt";
        Statistics sta = new Statistics();
        sta.readFile(filename);
        sta.display();
    }
}

 

思路就是先读取文件内容,通过空格和一些符号来分隔单词,存入一个临时的地方与已记录的单词进行比对,统计后输出。

中途遇到的一些问题:文件读入写出不怎么熟练,在提取单词的时候没有注意到空的字符串和空格也会被记录,以及尝试过将统计信息写入文件但是失败。

posted on 2018-10-11 23:51  墨钺  阅读(177)  评论(0编辑  收藏  举报