【java】输入1-9999数字,输出对应汉字,如1001 输出 一千零一

前言: 首先,lz是一个java爱好者,目前运用java编写性能测试工具和脚本,所以大神们有更好的答案请灌水!

题目:输入1-9999数字,输出对应汉字,如1001 输出 一千零一

    public static void main(String[] args) {
        //数字输入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入1-9999之间的数字:");
        int count = sc.nextInt();
        System.out.println("输入的数字是:"+count);
        //数据对应库
        String[] uint = {"千","百","十"};
        String[] hcount = {"一","二","三","四","五","六","七","八","九","零"};
        StringBuilder sb = new StringBuilder();
        //数字对应方法
        /****
         * 取千位数字i/1000%10
         * 取百位数字i/100%10
         * 取十位数字i/10%10
         * 取个位数字i%10
         * ***/
        //输出千位
        if(count/1000%10!=0) {
            //System.out.println(hcount[count/1000%10-1]+uint[0]);
            sb.append(hcount[count/1000%10-1]+uint[0]);
        }
        //输出百位
        if(count/100%10!=0) {
            //System.out.println(hcount[count/100%10-1]+uint[1]);
            sb.append(hcount[count/100%10-1]+uint[1]);
        }else {
            if(sb.length()!=0&&(count/10%10!=0||count%10!=0)) {
                sb.append(hcount[9]);
            }
        }
        //输出十位
        if(count/10%10!=0) {
            //System.out.println(hcount[count/10%10-1]+uint[2]);
            sb.append(hcount[count/10%10-1]+uint[2]);
        }else {
            if(sb.length()!=0&&count%10!=0) {
                System.out.println(sb.charAt(sb.length()-1));
                if(sb.indexOf("零")!=sb.length()-1) {//防止出现9001 输出九千零零一的双零情况
                    sb.append(hcount[9]);
                }
                
            }
        }
        //输出个位
        if(count%10!=0) {
            //System.out.println(hcount[count%10-1]);
            sb.append(hcount[count%10-1]);
        }else {
            //个位是0并且千百十无数字
            if(sb.length()==0) {
                sb.append(hcount[9]);
            }
        }    
        //输出
        System.out.println(sb.toString());
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值