【Java例题】7.6文件题3-文本文件统计

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 "";
            }
        }
    }
}
复制代码

 

posted @   海底淤泥  阅读(264)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示