统记字母个数以及所占百分比

源代码:

package text;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
public class TongJiDanCi {
    public static void main(String[] args)throws IOException//扔掉很重要
    {
         File file = new File("D:/yingwen.txt");
         txtString(file);  
          
    }
    public static void txtString(File file) throws IOException{
        try {
            //IO操作读取文件内容
            FileReader fr = new FileReader(file);
            @SuppressWarnings("resource")
            BufferedReader br = new BufferedReader(fr);//构造一个BufferedReader类来读取文件        
            HashMap<String, Integer> hm = new HashMap<String, Integer>();//构建了一个新的HashMap对象,强制指定这个HashMap必须是以String为key, 以Integer为值。 
            String line =null;
            Integer count = 0;//每个字母的个数
            Integer total = 0;//统计字母总数,作百分比用
            while ((line=br.readLine())!=null) {
                char[] ch = line.toCharArray();//将字符串对象中的字符转换为一个字符数组。
                total = total + ch.length;
                for (int i = 0; i < ch.length; i++) {
                    ch[i] = Character.toLowerCase(ch[i]);//将大写字符转换为小写,小写字母不变
                    count = hm.get(ch[i]+"");//ch[i]+""的作用是加一个空格后,括号内转化为字符串
                    if (count == null) {
                        count =1;//只出现一次
                    }else {
                        count++;
                    }
                    hm.put(ch[i]+"", count);
                }
            }
            for (String str : hm.keySet()) {//设变量str获取键
                System.out.println(str+"个数:"+hm.get(str)+"        "+hm.get(str)*100.0/total+"%");
            }    
            System.out.println("总字母个数:"+total);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

 运行结果:

统记字母个数以及所占百分比

 

上一篇:网站被植入Webshell,怎么处理


下一篇:Python 求汉明码的最小距离