数字转汉字demo

将数字转换成汉字,用来对一些对数字有特殊要求的操作

package cn.com.startinfo.zhtc.utils;

/**
 * 数字转汉字工具类
 * 2018.8.27
 * 呆呆
 * @author Administrator
 *
 */
public class DigitalConversion {
    private static final String[] num_lower = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" }; 
    private static final String[] unit_lower = { "", "十", "百", "千" }; 
    private static final String[] unit_common = {"","万", "亿"};
    private static final String[] unit_symbol = {"."};
    /**
     * 将传入的字符串中的数字转为中文
     * 支持时间和费用的转换
     * @param digital
     * @return
     */
    public static String DigitalConversion(String digital) {
        String ReturnDigital = "";
        if(digital.contains(".")){
            String a[]=digital.split("\\.");
            ReturnDigital = DigitalConversion.utils(Integer.parseInt(a[0]));
            ReturnDigital +="点"+decimal(a[1]);
        }else{
            String HH = digital.substring(0,digital.indexOf("小"));
            String mm = digital.substring(digital.indexOf("时")+1,digital.indexOf("分"));
            int intHH = Integer.parseInt(HH);
            int intmm = Integer.parseInt(mm);
            ReturnDigital = DigitalConversion.utils(intHH);
            ReturnDigital +="小时"+DigitalConversion.utils(intmm)+"分钟";
        }
        return ReturnDigital;
    }
    private static String decimal(String Time){
        String ReturnDecimal = "";
        for(int i=0;i<Time.length();i++){
            char b=Time.charAt(i);
            String o = String.valueOf(b);
            ReturnDecimal += utils(Integer.parseInt(o));
        }
        return ReturnDecimal;
    }
    private static String utils(int Time){
        String digital="";
        if(Time < 10){
            int a = Time%10;
            digital = num_lower[a];
        }
        else if(Time >= 10 && Time < 100){
            String ten = num_lower[Time/10];
            String a ="";
            if(Time%10 != 0){
                a = num_lower[Time%10];
            }

            digital = ten+unit_lower[1]+a;
        }else if(Time >= 100 && Time< 1000){
            String best = num_lower[Time/100]+unit_lower[2];
            digital = best;
            String ten = "";
            String a ="";
            if((Time%100)/10 != 0){
                ten = num_lower[(Time%100)/10];
                digital += ten+unit_lower[1];
                if((Time%100)%10 != 0){
                    a = num_lower[(Time%100)%10];
                    digital += a;
                }
            }else{
                ten = num_lower[0];
                if((Time%100)%10 != 0){
                    a = num_lower[(Time%100)%10];
                    digital += ten+a;
                }
            }
        }else if(Time>=1000 && Time < 10000){
            String thousand = num_lower[Time/1000];//千位
            digital = thousand+unit_lower[3];
            String best = "";
            String ten = "";
            String a ="";
            if((Time%1000)/100 != 0){
                best = num_lower[(Time%1000)/100];
                digital += best +unit_lower[2];//百位
                if(((Time%1000)%100)/10 != 0){
                    ten = num_lower[((Time%1000)%100)/10];
                    digital += ten +unit_lower[1];//十位
                    if(((Time%1000)%100)%10 != 0){
                        a = num_lower[((Time%1000)%100)%10];
                        digital += a;//个位
                    }
                }else{
                    ten = num_lower[0];
                    if(((Time%1000)%100)%10 != 0){
                        a = num_lower[((Time%1000)%100)%10];
                        digital += ten+a;
                    }
                }
            }else{
                best = num_lower[0];
                if(((Time%1000)%100)/10 != 0){
                    ten = num_lower[((Time%1000)%100)/10];
                    digital += best+ten +unit_lower[1];//十位
                    if(((Time%1000)%100)%10 != 0){
                        a = num_lower[((Time%1000)%100)%10];
                        digital += a;//个位
                    }
                }else{
//                  ten = num_lower[0];
                    if(((Time%1000)%100)%10 != 0){
                        a = num_lower[((Time%1000)%100)%10];
                        digital += best+ten+a;//个位
                    }
                }
            }
        }
        return digital;
    }
/*  public static void main(String[] args) {
        String str = "房估字(2014)第YPQD0006号";
        String op = str.substring(0,str.indexOf("第"));//获取字符串到 “第”字之前的数据
        String jieguo = str.substring(str.indexOf("第")+1,str.indexOf("号"));//获取字符串“第”+1到“号”字之间的数据
        System.out.println(op);
        System.out.println(jieguo);
        int a = 15;
        System.out.println(99/10);
        String digital = "0.05";
        String a2[]=digital.split("\\.");
        System.out.println(a2[0]);
        String a1 = "中国人";
         char b=a1.charAt(2);
         System.out.println(b);
        String a = "0.01";
        System.out.println(DigitalConversion.DigitalConversion(a));;
    }*/
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值