- package com.itheima;
- /**
- * @author fjl
- *
- */
- class MoneyConversion{
- //1~10对应的中文繁体,注意顺序,方便后面操作
- public static final char[] MONEYUPPER={'零','壹','貳','叁','肆','伍','陆','柒','捌','玖','拾'};
- //金额面值
- public static final char[] MONEYUNIT={'元','拾','佰','仟','万','拾','佰','仟','亿'};
- /**
- * 金额转换
- * @param money
- * @return 中文传统表示形式
- */
- public static String convertsion(Long money){
- StringBuilder sb=new StringBuilder();
- int x=0;
- while(money!=0){
- //从低到高为MONEYUNIT数组的声明顺序,每次在最高位插入
- sb.insert(0, MONEYUNIT[x++]);
- //System.out.println(sb);//测试
- //每次取余得到的数所对应的的中文传统大写
- int num=(int) (money%10);
- //先插入金额面值,再插入对应面值上的数值金额,如:拾元
- sb.insert(0, MONEYUPPER[num]);
- //System.out.println(sb);//测试
- money/=10;
- }
- //某些位上的零+面值去除
- return sb.toString().replaceAll("零[拾 佰 仟]", "零").
- replaceAll("零+万","零").replaceAll("零+元", "元").
- replaceAll("零+","零")+"整";
- }
- }
- public class Test10 {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //测试
- System.out.println(MoneyConversion.convertsion(new Long(110030020)));
- }
- }
复制代码 |