Java代码 复制代码 收藏代码

  1. public class ChinaNumber
  2. {
  3.  
  4. private static String[] CH = { "", "", "拾", "佰", "仟", "万", "", "", "", "亿", "", "", "", "兆" };
  5.  
  6. private static String[] CHS_NUMBER={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
  7.  
  8. /**
  9. * 传入数字金额字符串,返回数字金额对应的中文大字与读法
  10. *
  11. * @param money
  12. * 金额字符串
  13. * @return 金额中文大写
  14. */
  15.  
  16. public static String getCHSNumber(String money)
  17.  
  18. {
  19.  
  20. String chs = "";
  21.  
  22. String tmp_int = money.substring(0, money.indexOf("."));
  23.  
  24. String tmp_down = money.substring(money.indexOf(".") + 1, money.length());
  25.  
  26. char[] tmp_int_char = tmp_int.toCharArray();
  27.  
  28. String[] tmp_chs = new String[tmp_int_char.length];
  29.  
  30. int tab = 0;
  31.  
  32. for (int i = 0; i < tmp_int_char.length; i++)
  33.  
  34. {
  35.  
  36. tab = tmp_int_char.length - i - 1;
  37.  
  38. if (tmp_int_char.length <= 5)
  39.  
  40. {
  41.  
  42. tmp_chs[tab] = CHS_NUMBER[(int) Float.parseFloat(tmp_int_char[i] + ".0")];
  43.  
  44. if (!tmp_chs[tab].equals("零"))
  45.  
  46. {
  47. // tmp_int_char.length - i 为数字所在的位数
  48. chs = chs + tmp_chs[tab] + CH[tmp_int_char.length - i];
  49. } else
  50.  
  51. {// 当数字中有零时就在后加上零,如果超过1个以上的零也只加一个零
  52.  
  53. if (!chs.endsWith("零") && tab != 0)
  54. {
  55. chs = chs + tmp_chs[tab];
  56. } else if (chs.endsWith("零") && tab == 0)
  57.  
  58. {
  59. chs = chs.substring(0, chs.length() - 1);
  60. }
  61.  
  62. }
  63.  
  64. }