人名幣金額阿拉伯數字轉化為中國傳統形式JAVA實現
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實現