zoukankan      html  css  js  c++  java
  • 将数字转换为大写类型

       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;
       }

  • 相关阅读:
    Binary Tree Maximum Path Sum
    ZigZag Conversion
    Longest Common Prefix
    Reverse Linked List II
    Populating Next Right Pointers in Each Node
    Populating Next Right Pointers in Each Node II
    Rotate List
    Path Sum II
    [Leetcode]-- Gray Code
    Subsets II
  • 原文地址:https://www.cnblogs.com/anuoruibo/p/2455487.html
Copyright © 2011-2022 走看看