1. 程式人生 > >人名幣金額阿拉伯數字轉化為中國傳統形式JAVA實現

人名幣金額阿拉伯數字轉化為中國傳統形式JAVA實現

[1] 中國 [] data args pen ins string AS

1.

在金融項目中,常常需要對金額進行轉換,阿拉伯數字轉換成中國傳統形式。人民幣保留到分。

如輸入:16700 返回:壹萬陸仟柒佰元

如輸入:167.5785 返回:壹佰陸拾柒元伍角捌分

(可能用到的漢字參考:零,壹,貳,叁,肆,伍,陸,柒,捌,玖,拾,佰,仟,萬,億,兆,元,角,分.)

思路:a、用兩個數組,capNumber[10]、分別存儲零、壹、貳、叁、肆、伍、陸、柒、捌、玖。
unit[] 0,圓,拾,佰,仟,萬,億

舉例: 5667234。
5667234/10 商566723 余4 除次數為1 capNumber[4]+unit[1]=肆圓
566723/10 商56672 余3 除次數為2 capNumber[3]+unit[2]=叁拾
56672/10 商5667 余2 除次數為3 capNumber[2]+unit[3]=貳佰
5667/10 商566 余7 除次數為4 capNumber[7]+unit[4]=肆仟

566/10 商56 余6 除次數為5 capNumber[6]+unit[5]=陸萬
56/10 商5 余6 除次數為6 capNumber[6]+unit[6]=陸拾
5/10 商0 余5 除次數為7 capNumber[5]+unit[7]=伍佰
商為0,並且余數也為0時,結束

主要用到了StringBuffer 的apend 的方法, 但是 StringBuffer 的 insert(int offset, char c) 更好的解決了問題

public class RenMingBi {
	private static final char[]  data= {‘零‘,‘壹‘,‘貳‘,‘叁‘,‘肆‘,‘伍‘,‘陸‘,‘柒‘,‘捌‘,‘玖‘};
	private static final char[]  units= {‘元‘,‘拾‘,‘佰‘,‘仟‘,‘萬‘,‘拾‘,‘佰‘,‘仟‘,‘億‘,‘拾‘,‘佰‘,‘仟‘};
	public static void main(String[] args) {
		
		System.out.println(convert(1191));
	}
	
	public static String convert(int money){
		StringBuffer sb=new StringBuffer();
		int unit=0;
		while(money!=0){
			sb.insert(0, units[unit++]);
			int number=money%10;
			sb.insert(0, data[number]);
			money/=10;
			
		}
		return sb.toString();
	}
	 
}

人名幣金額阿拉伯數字轉化為中國傳統形式JAVA實現