【算法】将阿拉伯数字转为中文大写

100689123
转换为:
壹亿零佰陆拾捌万玖仟壹佰贰拾叁元

直接上代码:
 1 package main;
 2 
 3 import java.util.concurrent.ExecutorService;
 4 import java.util.concurrent.Executors;
 5 import java.util.concurrent.locks.Condition;
 6 import java.util.concurrent.locks.Lock;
 7 import java.util.concurrent.locks.ReentrantLock;
 8 
 9 public class Main {
10     public static void main(String[] args) {
11         System.out.println(cov(convert(100689123)));
12     }
13 
14     private static final char[] data = new char[]{'零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'};
15     private static final char[] units = new char[]{'元', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿'};
16 
17     /**
18      * 对替换掉的数字进行处理
19      * @param str
20      * @return
21      */
22     private static String cov(String str) {
23         StringBuffer sb = new StringBuffer(str);
24 
25         //System.out.println("1"+sb.reverse().toString());
26         str = sb.reverse().toString().replaceAll("零[拾佰仟]", "零").replaceAll("零+万", "万").replaceAll("零+元", "元").replaceAll("零+", "零");
27         System.out.println("2"+str);
28         return new StringBuffer(str).reverse().toString();
29     }
30 
31     /**
32      * 现将各个后面统统加上单位
33      * @param money
34      * @return
35      */
36     public static String convert(int money) {
37         StringBuffer sbf = new StringBuffer();
38         int unit = 0;
39         while (money != 0) {
40             sbf.insert(0, units[unit++]);
41             int number = money % 10;
42             sbf.insert(0, data[number]);
43             money /= 10;
44         }
45         System.out.println(sbf.toString());
46         return sbf.toString();
47     }
48 }

 

转载于:https://www.cnblogs.com/yanyojun/p/9487404.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值