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;
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值