算法与编程--3

金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出

package com.test;

public class RMBConvert {
	public static void main(String[] args) {
		convertMoney(910000000);
	}
	
	private static final char[] units = {
		'元','拾','佰','仟','万','拾','佰','仟','亿'
	};
	
	private static final char[] data = {
		'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'	
	};
	
	/**
	 * 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出
	 * @param money
	 * @return
	 */
	public static String convertMoney(int money) {
		int unitIndex = 0;
		int number = 0;
		StringBuffer sb = new StringBuffer();
		while (money > 0) {
			sb.insert(0, units[unitIndex++]);
			System.out.println(sb.toString());
			number = money % 10;
			money /= 10;
			sb.insert(0, data[number]);
			System.out.println(sb.toString());
		}
		String res = sb.toString().replaceAll("零[仟佰拾]", "零").replaceAll("零+元", "").replaceAll("零+万", "万").replaceAll("零+", "零");
		System.out.println(res);
		return res;
	}
	
}

  

原文地址:https://www.cnblogs.com/hblthink/p/8361493.html