1. 程式人生 > >算法與編程--3

算法與編程--3

傳統 con ber ringbuf all blog () void ins

金額轉換,阿拉伯數字的金額轉換成中國傳統的形式如:(¥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;
	}
	
}

  

算法與編程--3