统计文本 字符数,单词数,行数 作业

主要代码

private void analysis() {
    String str="";

    int words = 0;//单词数
    int chars = 0;//字符数
    int lines = 0;//行数
  
    String filename=et_name.getText().toString();
    FileInputStream fis=null;
    BufferedReader br=null;
    try {
        //判断是否具有读写权限
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            File file = new File(Environment.getExternalStorageDirectory().getCanonicalPath() + "/"+filename+".txt");
            if (file.exists()){//判断文件是否存在
                fis=new FileInputStream(file);
                br=new BufferedReader(new InputStreamReader(fis));
                while((str=br.readLine())!=null){
                    char[] b=str.toCharArray();
                    for (int i = 0; i < str.length(); i++) {
                        if (b[i]==' '){
                            spaces++;//空格数
                        }else if (b[i]==','||b[i]=='.'){
                            marks++;

                        }
                    }
                   
                    words+=str.split("[ \\.,]").length;
                    chars+=str.length();//字符串的长度
                    lines++;//行数
                }
                character=chars-(spaces+marks);//字母数
                br.close();

                tv_read.setText("单词数:"+words+",字符数:"+chars+",行数:"+lines+");
            }
            else {
                Toast.makeText(this, "不存在该文件", Toast.LENGTH_SHORT).show();
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

posted on 2017-03-26 21:33  SB小吴  阅读(156)  评论(0编辑  收藏  举报

导航