将数字转换为大写类型

   private String changeToBig(String input) {
       String s1 = "零壹贰叁肆伍陆柒捌玖";
       String s4 = "分角整元拾佰仟万拾佰仟亿拾佰仟";
       String temp = "";
       String result = "";
       if (input == null || input.length() < 1) {
           return "";
       }
       temp = input.trim();
       float f;
       try {
           f = Float.parseFloat(temp);
       } catch (Exception e) {return "";
       }

       int len = 0;
       if (temp.indexOf(".") == -1) {
           len = temp.length();
       } else {
           len = temp.indexOf(".");
       }
       if (len > s4.length() - 3) {
           return ("");
       }
       int n1, n2 = 0;
       String num = "";
       String unit = "";
       int add = 0;

       if (len > 7) {
           return input;
       }
       //处理佰万
       if (len == 7) {
           add = 3;
           n1 = Integer.parseInt(String.valueOf(temp.charAt(0)));
           result = result.concat(s1.substring(n1, n1 + 1)).concat("佰");
           if (Integer.parseInt(String.valueOf(temp.charAt(1))) == 0 &&
               Integer.parseInt(String.valueOf(temp.charAt(2))) == 0) {
               result = result.concat("万");
           }
           if (Integer.parseInt(String.valueOf(temp.charAt(1))) == 0 &&
               Integer.parseInt(String.valueOf(temp.charAt(2))) != 0) {
               n1 = Integer.parseInt(String.valueOf(temp.charAt(2)));
               result = result.concat("零").concat(s1.substring(n1, n1 + 1)).
                        concat("万");
           }
           if (Integer.parseInt(String.valueOf(temp.charAt(1))) != 0 &&
               Integer.parseInt(String.valueOf(temp.charAt(2))) == 0) {
               n1 = Integer.parseInt(String.valueOf(temp.charAt(1)));
               result = result.concat(s1.substring(n1, n1 + 1)).concat("拾万");
           }
           len = 4;
       }
       //处理拾万
       if (len == 6) {
           add = 2;
           n1 = Integer.parseInt(String.valueOf(temp.charAt(0)));
           //System.out.print(n1);
           result = result.concat(s1.substring(n1, n1 + 1)).concat("拾");
           if (Integer.parseInt(String.valueOf(temp.charAt(1))) == 0) {
               result = result.concat("万");
           }
           if (Integer.parseInt(String.valueOf(temp.charAt(1))) != 0) {
               n1 = Integer.parseInt(String.valueOf(temp.charAt(1)));
               result = result.concat(s1.substring(n1, n1 + 1)).concat("万");
           }
           len = 4;
       }
       //处理万
       if (len == 5) {
           add = 1;
           n1 = Integer.parseInt(String.valueOf(temp.charAt(0)));
           result = result.concat(s1.substring(n1, n1 + 1)).concat("万");
           len = 4;
       }

       for (int i = 0; i < len; i++) {
           n1 = Integer.parseInt(String.valueOf(temp.charAt(i + add)));
           num = s1.substring(n1, n1 + 1);
           if (n1 != 0) {
               n1 = len - i + 2;
               //System.out.print(n1);
               unit = s4.substring(n1, n1 + 1);
               //System.out.println(unit);
           } else {
               unit = "";
           }
           if (i != 0 &&
               Integer.parseInt(String.valueOf(temp.charAt(i - 1 + add))) == 0 &&
               Integer.parseInt(String.valueOf(temp.charAt(i + add))) == 0) {
               num = "";
               unit = "";
           }
           result = result.concat(num).concat(unit);
       }

       while (result.endsWith("零") && result.length() > "零".length()) {
           result = result.substring(0, result.length() - "零".length());
       }
       result = result.concat("元");

       //处理角分
       if (temp.indexOf(".") == -1) {
           len = temp.length();
           result = result.concat("整");
       } else {
           len = temp.indexOf(".");

       }
       if (len < temp.length()) {
           unit = "";
           for (int i = 0; i < temp.length() - len - 1; i++) {
               n1 = Integer.parseInt(String.valueOf(temp.charAt(i + len + 1)));
               num = s1.substring(n1, n1 + 1);
               if (n1 != 0) {
                   if (i == 0) {
                       unit = "角";
                   } else {
                       if (i == 1) {
                           unit = "分";
                       } else {
                           unit = "";
                       }
                   }
               } else {
                   unit = "";
               }
               result = result.concat(num).concat(unit);
           }
       }

       while (result.endsWith("零") && result.length() > "零".length()) {
           result = result.substring(0, result.length() - "零".length());
       }
       result = result.replaceAll("元元", "元");
       //result = result.replaceAll("零零","零").replaceAll("0","").replaceAll("十","拾万").replaceAll("百","佰万").replaceAll("千","仟万").replaceAll("义","亿").replaceAll(" ","");

       return result;
   }

原文地址:https://www.cnblogs.com/anuoruibo/p/2455487.html