Java05文件与流-——课堂测试1
要求1:
输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位。
字母频率 = 这个字母出现的次数 / (所有A-Z,a-z字母出现的总数)
如果两个字母出现的频率一样,那么就按照字典序排列。
package Count1; import java.io.FileReader; import java.io.IOException; import java.text.DecimalFormat; import java.io.BufferedReader; public class Count_fly { public static void main(String[] args) throws IOException{ FileReader fr=new FileReader("F://FLY.txt"); BufferedReader br=new BufferedReader(fr); DecimalFormat fnum=new DecimalFormat("0.00"); int f=0; int[] number=new int[52]; double[] rate=new double[52]; StringBuffer sb=new StringBuffer(); String s=null; while((s=br.readLine())!=null) { sb.append(s); } br.close(); fr.close(); for(int i=0;i<sb.length();i++) { char ch=sb.charAt(i); if(ch!=' '&&ch!='\n'&&ch!='\t') { f++; } int m=ch; if(ch<='Z'&&ch>='A') { number[m-65]++; } if(ch<='z'&&ch>='a') { number[m-71]++; } } System.out.println(f); for(int j=0;j<52;j++) { rate[j]=number[j]*100/(double)f; } for(char m=65,i=0;m<=90&&i<26;i++,m++) { System.out.println(m+":"+fnum.format(rate[i])+"%"); } for(char m=97,i=26;m<=122&&i<52;i++,m++) { System.out.println(m+":"+fnum.format(rate[i])+"%"); } } }
课堂测试1虽然简单但是文件方面没有学太好所以写起来还是有难度
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!