金额转换问题

问题描述:阿拉伯数字转换为中国传统的形式

例如:1001->壹仟零壹元

代码如下:

public class ConvertTest {
	
	private static char[] data = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
	private static char[] units = {'元','拾','佰','仟','万','拾','佰','仟','亿'};
	public static void main(String[] args) {
		System.out.println(convert(12001));
	}
	
	public static String convert(int money){
		StringBuilder sb = new StringBuilder();
		int j = 0;
		while(money != 0){
			sb.append(units[j++]);
			int number = money%10;
			sb.append(data[number]);
			money /= 10;
		}
		String result = sb.reverse().toString();
		result = result.replaceAll("零[万仟佰拾]", "零").replaceAll("零+", "零").replaceAll("零+元", "元");
		return result;
	}
}

原文地址:https://www.cnblogs.com/zhangguixing/p/10858133.html