import java.util.HashMap;public class TestFinal { private final static HashMap hm_upper = new HashMap();//大写 private final static HashMap hm_dw = new HashMap();//单位 private final static String str_upper[] = new String[]{ "零","壹","贰","叁","肆","伍","陆","柒","捌","玖" }; //定位到万亿,够用了 private final static String str_dw[] = new String[]{ "","拾","佰","仟","萬","拾","佰","仟","億", "拾","佰","仟","萬" }; //初始化 static{ //大写 for(int i = 0;i < str_upper.length;i++){ hm_upper.put(i, str_upper[i]); } //单位 for(int i = 1;i <= str_dw.length;i++){ hm_dw.put(i,str_dw[i-1]); } } /** * 转换函数 * @param num * @return */ public String rtnConvertRMB(String num){ char str[] = num.toCharArray(); int j = str.length; String strNum = ""; for(int i = 0;i < str.length;i++){ if(hm_upper.get(Integer.valueOf(String.valueOf(str[i])).intValue()).toString().equals("零")){ if(hm_dw.get(j).toString().equals("萬") || hm_dw.get(j).toString().equals("億")){ strNum = strNum + hm_dw.get(j).toString(); }else{ strNum = strNum + hm_upper.get(Integer.valueOf(String.valueOf(str[i])).intValue()).toString(); } }else{ strNum = strNum + hm_upper.get(Integer.valueOf(String.valueOf(str[i])).intValue()).toString() + hm_dw.get(j).toString(); } // System.out.println(strNum); j--; } strNum = strNum + "元"; //连续出现 零 换成一个 strNum = strNum.replaceAll("零{2,}", "零"); strNum = strNum.replaceAll("零億", "億"); strNum = strNum.replaceAll("萬", "萬"); return strNum; } /** * 测试 * @param arg */ public static void main(String arg[]){ TestFinal tf = new TestFinal(); System.out.println(tf.rtnConvertRMB("10009718001")); System.out.println(tf.rtnConvertRMB("7001101")); }}/** * 一百亿零九百七十一万八千零一元 * 七百万一千一百零一元 * */ /**输出 *壹佰億零玖佰柒拾壹萬捌仟零壹元 *柒佰零萬壹仟壹佰零壹元 * */

评论