毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> java技术 >> 正文

java金额转换优化源代码 第3页

更新时间:2012-12-20:  来源:毕业论文
private static String integerTransGBK(String input) {         String regix = "[0-9]+";         int[] num = new int[input.length()];         String[] str1 = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "玐", "玖" };         TreeMap<Integer, String> map1 = new TreeMap<Integer, String>();         StringBuilder sb = new StringBuilder();         int len = num.length;        //数字的长度         boolean hasZero = false;    //是否有0         //是否从第1位,第5为,第9位……开始。用来去除个位上的“零”         boolean zeroFromGeWei = true;                    //判断是否是合法数字         if(!input.matches(regix)){             throw new RuntimeException("对不起,你输入的不是数字!");         }                       // 将String数字变成int数组         for (int i = 0; i < num.length; i++) {             num[i] = Integer.parseInt(String.valueOf(input.charAt(i)));         }           // 将str1的元素与数字一一对应         for (int i = 0; i < str1.length; i++) {             map1.put(i, str1[i]);         }                   //开始转换字符串         for(int i = len - 1 ; i>= 0 ; i--){             int position = len - i -1;             if ( position % 4 == 0)                  zeroFromGeWei = true;                           // 如果不是个位,每四位加个万或亿字,交替添加             if(i != (len - 1) && ( position % 4 == 0)){                 if (hasZero ) {                     sb.insert(0,"零");    //在万亿之前的0数字,要处理完                     hasZero = false;                 }                 if((position % 8 == 0)){                     sb.insert(0,"亿");                 } else {                     sb.insert(0,"万");                 }             }             //判断数字字符是不是0字符             if (num[i] != 0){                 if (hasZero && !zeroFromGeWei ) {                     sb.insert(0,"零");                 }                 hasZero = false;                 zeroFromGeWei = false;                 sb.insert(0,map1.get(num[i]));                                   switch (position % 4) {                 case 1:                     sb.insert(1,"拾");                     break;                 case 2:                     sb.insert(1,"百");                     break;                 case 3:                     sb.insert(1,"千");                     break;                 default:                     break;                 }             } else {                 hasZero = true;             }         }         //去除零万的情况         int index = sb.indexOf("零万");          while(index != -1){             sb.delete(index, index+2);             index = sb.indexOf("零万");          }         //去除零亿的情况         index = sb.indexOf("零亿");          while(index != -1){             sb.delete(index, index+1);             index = sb.indexOf("零亿");          }         //去除最后一个字符为0的情况,在低8位为0的情况下,会在亿字后多个零字         index = sb.indexOf("零",sb.length()-1);          if (index != -1){             sb.delete(index, index +1);         }         return sb.toString();     }

上一页  [1] [2] [3] 

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©chuibin.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。