`

JAVA实现数字的汉字读法,适用于财务

    博客分类:
  • JAVA
阅读更多
import java.text.DecimalFormat;

public class ChinaNum {
    
    public static void main(String[] args) {
        ChinaNum chinaNum=new ChinaNum();
        System.out.println(chinaNum.getChinaNum(6007567));
        System.out.println(chinaNum.getChinaNum(987654321));
        System.out.println(chinaNum.getChinaNum(900000001.34));
        System.out.println(chinaNum.getChinaNum(907060501));
        System.out.println(chinaNum.getChinaNum(900500001));
        System.out.println(chinaNum.getChinaNum(601500001));
        System.out.println(chinaNum.getChinaNum(40500001));
        System.out.println(chinaNum.getChinaNum(500001));
        System.out.println(chinaNum.getChinaNum(1001001.12));
        System.out.println(chinaNum.getChinaNum(10101007));
        System.out.println(chinaNum.getChinaNum(10100.1));
        System.out.println(chinaNum.getChinaNum(10010.01));
        System.out.println(chinaNum.getChinaNum(10011.01));
    }
    
    //玖亿捌仟柒佰陆拾伍万肆仟叁佰贰拾壹元整
    private String small[] = { "角", "分" };
    
    public String getChinaNum(double num)   {
        String[] number={ "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
        String[] numbers={"","元", "拾","佰", "仟","万","拾","佰", "仟","亿","拾","佰", "仟"};
         DecimalFormat df=new DecimalFormat("0.00");
         String money=df.format(num);
         String moneyleft=money.substring(0, money.indexOf("."));
         String moneyright=money.substring(money.indexOf(".")+1,money.length());
         String daxie="";
         String hou="";
         for (int i =0; i< moneyleft.length(); i++) {
             String one=moneyleft.substring(i,i+1);
             int onint=Integer.parseInt(one);
             int last=moneyleft.length()-i;
             hou=number[onint]+((onint>0 ||last==5 || last==1) ?numbers[last]:"");
             daxie=daxie+hou;
        }
         daxie=replaceling(daxie).replace("亿零万零", "亿零").replace("零万", "万零").replace("零元", "元");
         daxie=replaceling(daxie);
        int intright=Integer.parseInt(moneyright);
         if(intright>9){
             int ge=Integer.parseInt(moneyright.substring(0, 1));
             int shi=Integer.parseInt(moneyright.substring(1, 2));
             daxie=daxie+number[ge]+"角"+(shi>0?(number[shi]+"分"):"");
         }else if(intright>0){
             daxie=daxie+"零"+number[intright]+"分";
         }else{
             daxie=daxie+"整";
         }
         return daxie;
    }
    public   String replaceling(String str){
        if(str.indexOf("零零")>-1){
            str=str.replace("零零", "零");
            return replaceling(str);
        }else{
            return str;
        }
    }
} 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics