以io流输出文件

计算最多的字母的数量以及频率

package piao;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Set;
import java.text.NumberFormat;
public class W1 {
    public static void main(String[] args) throws Exception {
        HashMap<Character, Integer> map1 = new HashMap<>();
        HashMap<Character, Integer> map2 = new HashMap<>();
        File f1 = new File("src/《飘》英文版.txt");
        //定义一个字符缓冲输入流更快的读取数据//此处用字符输入流最适宜
        BufferedReader br = new BufferedReader(new FileReader(f1));
        //定义个字符串用来保存每次读取的数据
        String len;
       long total=0;
        while ((len = br.readLine()) != null) {
            char[] chars = len.toCharArray();

                for (char aChar : chars) {

                    if ((aChar >= 'a' && aChar <= 'z') || (aChar >= 'A' && aChar <= 'Z')) {
                        //是字符进入
                        total++;

                        //判读字符是不是第一次出现
                        if (!map1.containsKey(aChar)) {
                            //是第一次出现,将字符当做键  出现的次数1为值  存入Map集合中
                            map1.put(aChar, 1);
                        } else {
                            //不是第一次出现  通过get()方法得到当前字符出现的次数  (键对应的值)
                            Integer integer = map1.get(aChar);
                            integer++;//本次该字符又出现了一次,将值+1,
                            map1.put(aChar, integer);//将得到的新的值和  键保存到集合中
                        }


                    }
                }
            }//关闭资源
            br.close();
            Set<Character> characters = map1.keySet();
        NumberFormat num = NumberFormat.getPercentInstance();
        num.setMaximumIntegerDigits(3);// 设置整数位最大为3位数
        num.setMaximumFractionDigits(2);// 设置小数位最多为两位数
            for (Character character : characters) {
             long s= map1.get(character);
//double t=s/total;
                System.out.println(character + "=" +num.format((float)(map1.get(character))/total) );
            }
        }
    }

 

posted @ 2021-11-24 22:03  清梦韶华  阅读(67)  评论(0编辑  收藏  举报