时间:2023-12-07来源:系统城装机大师作者:佚名
在日常生活中,我们经常会将阿拉伯数字转化为中文大写的情况:"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾", "佰", "仟", "万", "亿",因此自己就编写一个类,实现该功能的转化。
实现过程:
对于这个问题的实现,我们首先把数字按四位一个拆开(符合我们读数字的习惯),然后对这四位数,做出他的读法,具体代码如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | privatestaticString getNumberStr1000 (intnum) {  if(num > 9999|| num < 0) {   return"";  }  intq = num / 1000;  intb = (num / 100) % 10;  ints = (num / 10) % 10;  intg = num % 10;  StringBuffer sb = newStringBuffer();  //千  if(q > 0) {   sb.append(NUMBER1[q]);   sb.append(NUMBER2[3]);  }  //百  if(b > 0) {   sb.append(NUMBER1[b]);   sb.append(NUMBER2[2]);  } else{   if(q != 0) {    sb.append(NUMBER2[0]);   }  }  //十  if(s > 0) {   sb.append(NUMBER1[s]);   sb.append(NUMBER2[1]);  } else{   if(b != 0) {    sb.append(NUMBER2[0]);   }  }  //个  if(g > 0) {   sb.append(NUMBER1[g]);  }  returnsb.toString(); }  | 
下面我们只需要在编写一个方法,实现每个四位数的读法以及对应的单位即可,具体代码如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | publicstaticString getNumberStr(intnum) {  if(num < 0) {   return"";  }  if(num == 0) {   returnNUMBER1[0];  }  intsplit = 10000;  inty = num / (split * split);  intw = (num / split) % split;  intg = num % split;  StringBuffer sb = newStringBuffer();  //亿  if(y > 0) {   sb.append(getNumberStr1000(y));   sb.append(NUMBER2[5]);  }  //万  if(w > 999) {   sb.append(getNumberStr1000(w));   sb.append(NUMBER2[4]);  } else{   if(w > 0) {    if(y != 0) {     sb.append(NUMBER2[0]);    }    sb.append(getNumberStr1000(w));    sb.append(NUMBER2[4]);   }  }  //万以下  if(g > 0) {   if(w != 0) {    if(g > 999) {     sb.append(getNumberStr1000(g));    } else{     sb.append(NUMBER2[0]);     sb.append(getNumberStr1000(g));    }       } else{    if(y != 0) {     sb.append(NUMBER2[0]);    }    sb.append(getNumberStr1000(g));   }  }  returnsb.toString(); }  | 
完整源代码:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | /**  *@Description:   */packagecom.lulei.util;  publicclassNumberUtil {  privatestaticString[] NUMBER1 = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};  privatestaticString[] NUMBER2 = {"零", "拾", "佰", "仟", "万", "亿"};    /**   * @param num   * @return   * @Author:lulei   * @Description:将数字转化为大写   */ publicstaticString getNumberStr(intnum) {   if(num < 0) {    return"";   }   if(num == 0) {    returnNUMBER1[0];   }   intsplit = 10000;   inty = num / (split * split);   intw = (num / split) % split;   intg = num % split;   StringBuffer sb = newStringBuffer();   //亿   if(y > 0) {    sb.append(getNumberStr1000(y));    sb.append(NUMBER2[5]);   }   //万   if(w > 999) {    sb.append(getNumberStr1000(w));    sb.append(NUMBER2[4]);   } else{    if(w > 0) {     if(y != 0) {      sb.append(NUMBER2[0]);     }     sb.append(getNumberStr1000(w));     sb.append(NUMBER2[4]);    }   }   //万以下   if(g > 0) {    if(w != 0) {     if(g > 999) {      sb.append(getNumberStr1000(g));     } else{      sb.append(NUMBER2[0]);      sb.append(getNumberStr1000(g));     }         } else{     if(y != 0) {      sb.append(NUMBER2[0]);     }     sb.append(getNumberStr1000(g));    }   }   returnsb.toString();  }    /**   * @param num   * @return   * @Description:对万以下的数字进行大小写转化   */ privatestaticString getNumberStr1000 (intnum) {   if(num > 9999|| num < 0) {    return"";   }   intq = num / 1000;   intb = (num / 100) % 10;   ints = (num / 10) % 10;   intg = num % 10;   StringBuffer sb = newStringBuffer();   //千   if(q > 0) {    sb.append(NUMBER1[q]);    sb.append(NUMBER2[3]);   }   //百   if(b > 0) {    sb.append(NUMBER1[b]);    sb.append(NUMBER2[2]);   } else{    if(q != 0) {     sb.append(NUMBER2[0]);    }   }   //十   if(s > 0) {    sb.append(NUMBER1[s]);    sb.append(NUMBER2[1]);   } else{    if(b != 0) {     sb.append(NUMBER2[0]);    }   }   //个   if(g > 0) {    sb.append(NUMBER1[g]);   }   returnsb.toString();  }   publicstaticvoidmain(String[] args) {   // TODO Auto-generated method stub   inti = 1;   System.out.println(i + "--"+ NumberUtil.getNumberStr(i));   i = 1001;   System.out.println(i + "--"+ NumberUtil.getNumberStr(i));   i = 100101;   System.out.println(i + "--"+ NumberUtil.getNumberStr(i));   i = 10100101;   System.out.println(i + "--"+ NumberUtil.getNumberStr(i));   i = 1234567890;   System.out.println(i + "--"+ NumberUtil.getNumberStr(i));  }  } | 
测试运行结果:

希望本文所述对大家学习java程序设计有所帮助。
2023-12-07
SQL SERVER 2008 r2 数据压缩的两种方法2023-12-07
SQL Server 2008数据库设置定期自动备份的方法2023-12-07
sqlserver2008首次登录失败问题及解决方法环境:SQLServer2008R2一台、web服务器一台 软件支持:iis、动态网站源代码 拓扑:步骤:数据库部分:1、开始-点击SQL Server Management Studio2、输入SQLServer服务器的名称或IP地...
2023-12-07
因为需要本地测试开发一个小型的cms系统,那么下面的sql server 2008 就可以安装下面的文件了,如果正式使用推荐安装企业版。下载地址:SQL Server 2008 Express 中文简体安装包x...
2023-12-07