`

阿拉伯数字到中文大写的转换

    博客分类:
  • java
 
阅读更多
将数字“123456789”转换为“壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元“的代码:

代码如下:
package com.moneyTransfer.Test;

public class RMB {

	private static final char[] data = new char[]{
		'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
	
	private static final char[] units = new char[]{
		'元','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟'};
	
	public static void main(String[] args) {
		System.out.println(convert(123456789));
	}
	
	public static String convert(int money){
		StringBuffer sbf = new StringBuffer();
		int unit = 0;
		while(money!=0){
			sbf.insert(0, units[unit++]);
			int number = money%10;
			sbf.insert(0, data[number]);
			money=money/10;
		}
/*		
 * String str = sbf.toString();
		str = str.replaceAll("零[拾佰仟]", "零");将零拾、零佰、零仟这样的字符窜组合都替换成零
		str = str.replaceAll("零零零零万","");避免将如1300000000转换为壹拾叁亿万元这样的错误转换
		str = str.replaceAll("零+万", "万");将零万、零零万、零零万、零*零万替换为万
		str = str.replaceAll("零+元", "元");同上
		str = str.replaceAll("零+", "零");将多个连续的零替换为零
		
		return str;
*/
		return sbf.toString().replaceAll("零[拾佰仟]", "零").replaceAll("零零零零万","").replaceAll("零+万", "万").replaceAll("零+元", "元").replaceAll("零+", "零");
	}
}



运行结果如下:
壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics