public class Num2Ch { static String number = "123456789"; public static void main(String [] args){ String str = num2dao(number); String result = result(str); System.out.println(result); } /** * 123456789 转化成 壹亿贰千叁百肆十伍万陆千柒百捌十玖 * @param str * @return */ private static String result(String str) { String re = ""; for(int i=str.length() - 1; i >= 0; i--){ String s = chr(Integer.valueOf( String.valueOf(str.charAt( i )) )); String r = chrArr(i); if(s == "零"){ if(r == "十") { s = "零"; r = ""; } if(r == "百") { s = "零"; r = ""; } if(r == "千") { s = "零"; r = ""; } if(r == "万") { s = "万"; r = ""; } } re += s + r; } return re; } /** * 把字符串倒过来 abc 转成 cba * @param str * @return */ private static String num2dao(String str) { String s = ""; for(int i = str.length() - 1; i >= 0; i--){ s += str.charAt( i ); } return s; } /** * 表示数字的从个位到千亿位 * @param n 数字位置 * @return */ private static String chrArr(int n) { String str = ""; switch(n){ case 0: str = ""; break; case 1: str = "十"; break; case 2: str = "百"; break; case 3: str = "千"; break; case 4: str = "万"; break; case 5: str = "十"; break; case 6: str = "百"; break; case 7: str = "千"; break; case 8: str = "亿"; break; case 9: str = "十亿"; break; case 10: str = "百亿"; break; case 11: str = "千亿"; break; } return str; } /** * 把阿拉伯数字 0-10 转成中文 壹-拾 * @param n 阿拉伯数字 0 - 10 * @return str 中文 壹到拾 */ private static String chr(int n) { String str = ""; switch(Integer.valueOf( n )){ case 0: str = "零"; break; case 1: str = "壹"; break; case 2: str = "贰"; break; case 3: str = "叁"; break; case 4: str = "肆"; break; case 5: str = "伍"; break; case 6: str = "陆"; break; case 7: str = "柒"; break; case 8: str = "捌"; break; case 9: str = "玖"; break; case 10: str = "拾"; break; } return str; } }
123456789 转化成 壹亿贰千叁百肆十伍万陆千柒百捌十玖,布布扣,bubuko.com
123456789 转化成 壹亿贰千叁百肆十伍万陆千柒百捌十玖
原文:http://blog.csdn.net/shaonaozu/article/details/21832957