package Test;public class Test { public static void main(String[] args){ //測試 System.out.PRintln(convertNumber(3500908)); System.out.println(convertNumber(101000001010L)); } public static String convertNumber(long number){ //定義字符數組存儲中國數字寫法格式 final char[] chineseNumber = new char[] { '零', '壹', '貳', '叁', '肆', '伍', '陸', '柒', '捌', '玖' }; //定義字符數組存儲中國數字的單位 final char[] units = new char[] { '圓', '拾', '佰', '仟', '萬', '拾', '佰', '仟', '億', '拾', '佰', '仟'}; //定義一個字符串緩沖區對字符進行存儲 StringBuilder sb = new StringBuilder(); int index=0; long lastNumber = 0; while(number!=0){ lastNumber = number%10; sb.insert(0,units[index++]); sb.insert(0,chineseNumber[(int) lastNumber]); number=number/10; } //去零操作,通過正則表達式 return sb.toString().replaceAll("零[拾佰仟]","零").replaceAll("零+億","億").replaceAll("零{4}萬","零"). replaceAll("零+萬","萬").replaceAll("零+圓","圓").replaceAll("零+","零")+"整"; }}
新聞熱點
疑難解答