• 数字转换成中文汉字数字


     1 class Student {
     2     static String[] ss = new String[]{"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
     3     static String[] mm = new String[]{"仟", "佰", "拾", ""};
     4     static String[] hh = new String[]{"", "萬", "亿", "兆","京","垓"};
     5 
     6     int dd = 123456789;
     7 
     8     public static void main(String[] args) {
     9         read("22222222222222222222222");
    10     }
    11 
    12     private static void read(String num) {
    13         String[] strings = num.split("\.");
    14         String integer = strings[0];
    15         String zhengs =readInteger(integer);
    16         String xiaos="";
    17         if(strings.length==2){
    18             String decimal = strings[1];
    19              xiaos="点"+readDecimal(decimal);
    20         }
    21         String xx=zhengs+xiaos;
    22         System.out.println(xx);
    23     }
    24 
    25     private static String readInteger(String integer) {
    26         int mark = integer.length();
    27         int star = mark - 4 < 0 ? 0 : mark - 4;
    28         int end = mark;
    29         StringBuilder stringBuilder = new StringBuilder();
    30         for (int i = 0; i <= integer.length() / 4; i++) {
    31             String nn = integer.substring(star, end);
    32             mark=star;
    33             star = mark - 4 < 0 ? 0 : mark - 4;
    34             end = mark;
    35             String nn1 = readfour(nn);
    36             if (!nn1.equals("")) {
    37                 stringBuilder = stringBuilder.insert(0,nn1 + hh[i]);
    38             }
    39 
    40         }
    41         if(stringBuilder.charAt(0) == '零'){
    42             stringBuilder.replace(0, 1, "");
    43         }
    44         return stringBuilder.toString();
    45     }
    46 
    47     private static String readDecimal(String decimal) {
    48         StringBuilder stringBuilder = new StringBuilder();
    49         for (int i = 0; i < decimal.length(); i++) {
    50             stringBuilder.append(ss[Integer.parseInt(decimal.charAt(i) + "")]);
    51         }
    52         return stringBuilder.toString();
    53     }
    54 
    55     private static String readfour(String nn) {
    56         StringBuilder stringBuilder = new StringBuilder();
    57         int d=4-nn.length();
    58         if(d!=0){
    59             for (int i = 0; i <d ; i++) {
    60                 nn="0"+nn;
    61             }
    62         }
    63         for (int i = 0; i < nn.length(); i++) {
    64             if (nn.charAt(i) == '0') {
    65                 stringBuilder.append(ss[Integer.parseInt(nn.charAt(i) + "")]);
    66             } else
    67                 stringBuilder.append(ss[Integer.parseInt(nn.charAt(i) + "")] + mm[i]);
    68         }
    69 
    70         //多个零变一个零
    71         for (int i = 0; i < stringBuilder.length(); i++) {
    72             if (stringBuilder.charAt(i) == '零') {
    73                 if((i+1)==stringBuilder.length())
    74                     continue;
    75                 if (stringBuilder.charAt(i + 1) == '零') {
    76                     stringBuilder.replace(i + 1, i + 2, "");
    77                     i=i-1;
    78                 }
    79             }
    80         }
    81         //去掉末尾的零
    82         if (stringBuilder.charAt(stringBuilder.length() - 1) == '零') {
    83             stringBuilder.replace(stringBuilder.length() - 1, stringBuilder.length(), "");
    84         }
    85 
    86         return stringBuilder.toString();
    87     }
    88 
    89 
    90 }
  • 相关阅读:
    hdu 2296 AC自动机+DP+路径字符串记录(较麻烦)
    HDU
    hdu 2243(poj2778的加强版!(AC自动机+矩阵))
    Poj3691(AC自动机+DP(简单题))
    后台样式升级1.
    那些可以在数据库里做的事:分页与过滤
    常用的几个单页应用程序网站分享
    Javascript生成二维码(QR)
    户端页面中读取串口操作
    GridView事件分析
  • 原文地址:https://www.cnblogs.com/hxz-nl/p/10929983.html
Copyright © 2020-2023  润新知