正文

阿拉伯数字转中文大写2008-05-03 15:47:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/bluedance/34782.html

分享到:

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"));   }}/** *  一百亿零九百七十一万八千零一元 *  七百万一千一百零一元 *  */   /**输出 *壹佰億零玖佰柒拾壹萬捌仟零壹元 *柒佰零萬壹仟壹佰零壹元 *  */  

阅读(4246) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册