6.文本文件统计。
已有一个文本文件文件,请统计数字、大写字母、小写字母、汉字及其它字符出现的次数;
然后将这些次数由大到小写到另一个文件之中。
说明:将次数为零的过滤掉排序
package chapter7; import java.io.File; import java.io.FileNotFoundException; import java.io.PrintStream; import java.util.Scanner; public class demo6 { public static void main(String[] args) { int da=0; int xiao=0; int shu=0; int han=0; int els=0; try { Scanner sc = new Scanner(new File("strings.txt")); PrintStream out=new PrintStream(new File("cord.txt")); String str=sc.next(); for(int i=0;i<str.length();i++) { char c=str.charAt(i); if(c>='A'&&c<='Z') { da=da+1; }else if(c>='a'&&c<='z'){ xiao=xiao+1; }else if(c>='0'&&c<='9') { shu=shu+1; }else if(c>=0x4E00&&c<=0x9FA5) { han=han+1; }else { els=els+1; } } int a[]= {da,xiao,shu,han,els}; num b[]=new num[5]; for(int i=0;i<5;i++) { b[i]=new num(i); b[i].value=a[i]; } for(int i=0;i<5;i++) { for(int j=i+1;j<5;j++) { if(b[i].value>b[j].value) { num temp=b[j]; b[j]=b[i]; b[i]=temp; } } } for(int i=0;i<5;i++) { out.print(b[i].shownum()+" "); } sc.close(); }catch (FileNotFoundException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } static class num{ int type; int value; public num(int i) { this.type=i; } String shownum() { if(value==0) { return ""; } switch(type) { case 0:return("大写数量:"+value); case 1:return("小写数量:"+value); case 2:return("数字数量:"+value); case 3:return("汉字数量:"+value); case 4:return("其他数量:"+value); default:return ""; } } } }