超级简单的大写金额转换--阿拉伯数字转中文大写

public class ConvertMoney {

 
 public static void main(String[] args) {
  
  System.out.println(convert(6800000300.23D));
 }
 /**
  * 阿拉伯数字转换为中文大写--只支持到千亿位,不支持小数转换
  * @param args
  */
 public static String convert(double n) {
  
  char[] d = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' };
  char[] d2={'元','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟'};
  
  String str=String.format("%.0f", n);
  StringBuilder sb=new StringBuilder();
  
  System.out.println(str);
  if(str.length()>d2.length) {
   System.out.println("金额太大,不支持转换!");
   return null;
  }
  
  for(int i=0;i<str.length();i++) {
   
   sb.append(d[str.charAt(i)-'0']);
   sb.append(d2[str.length()-i-1]);
  }
  str=sb.toString();
  str=str.replaceAll("零[拾佰仟]", "零");
  str=str.replaceAll("零{2,}", "零");
  str=str.replaceAll("零([元万亿])", "$1");
  str=str.replaceAll("亿万", "亿");
  
  return str;
 }
}

 

以上程序输出:

6800000300
陆拾捌亿零叁佰元

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值