黑马程序员技术交流社区

标题: 读取一个本地文本文件 统计每个字符包括标点和空格出现的次数 [打印本页]

作者: 晨曦遇晓    时间: 2015-8-22 22:01
标题: 读取一个本地文本文件 统计每个字符包括标点和空格出现的次数
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Set;
import java.util.TreeMap;

public class IODemo1 {
/**
* 需求: 读取一个本地文本文件 统计文本文件中每个字符出现的次数
* */
        public static void main(String[] args) throws IOException {
                /**
                 * 第一步:首先导入要操作的文件,导入File对象目的是为了获取到要操作文件的具体大小 将其装入数组中
                 * */
                FileReader fr=new FileReader("D:\\ZongHeDemo.java");
                File f=new File("D:\\ZongHeDemo.java");
                char[] chs=new char[(int)f.length()];//定一个存储和对象大小一样的数组
               
                /**
                 * 第二步:建立一个Map集合 用来装字符数据和统计次数
                 * */
                TreeMap<Character,Integer>tm=new TreeMap<Character,Integer>();               
               
                /**
                 * 第三步:通过循环将数组中的元素存入到集合中
                 * 在这里如果不加while循环的话 打印出来的仅仅是数组的容器大小
                 * */
               
                while(fr.read(chs)!=-1){
                        for(char key:chs){
                                Integer val=tm.get(key);
                                if(val==null){
                                        tm.put(key,1);
                                }else{
                                        val++;
                                        tm.put(key, val);
                                }
                        }
                }
               
                /**
                 *第四步:new一个字符串容器将打印格式排出来
                 * */
               
                StringBuilder sb=new StringBuilder();
                Set<Character>keys=tm.keySet();
                for(char key:keys){
                        Integer val=tm.get(key);
                        sb.append(key).append("出现次数:").append(val+"次  ");
                }
                System.out.print(sb);

        }

}

作者: 朱玉正    时间: 2015-8-22 22:20
写的挺好的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2