package com.test;/** *//** * All Rights Reserved@2006-2007 * Author: HallyWang * Date: 2007-3-16 * Time: 16:40:42 * Modifier:HallyWang * Modify Date&Time: 2007-3-16 16:40:42 */public class conNumToUpperCN ...{ public conNumToUpperCN() ...{ } public static String convertToUpperCN(String number) ...{ String resultString = "整"; try ...{ String[] unit = ...{"分", "角", "元", "拾", "佰", "扦", "万", "拾", "佰", "扦", "亿", "拾", "佰", "扦", "万"};//单位 String[] numberCN = ...{"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; //0-9中文对应 int point = number.indexOf("."); if (point == -1) ...{ //没有小数部分 String numStr = number; int len = numStr.length(); if (len > 13) ...{ return "请输入10万亿以下数字"; } for (int i = 0; i < len; i++) ...{ int j = Integer.parseInt(numStr.substring(len - 1 - i, len - i)); //得到每一位数 (个位--〉最高位) resultString = numberCN[j] + unit[2 + i] + resultString; //从数组从取出其中文对应大写,以及单位 numStr = numStr.substring(0, len - 1 - i); } } else ...{ //有小数部分 String numStr = number.substring(0, point); String last = number.substring(point + 1); int len = numStr.length(); if (len > 13) ...{ return "请输入10万亿以下数字"; } int lenlast = last.length(); //使小数点后面只精确到角分 if (lenlast > 2) ...{ lenlast = 2; last = last.substring(0, 2); } if (lenlast < 2) ...{ lenlast = 2; last = last + "0"; } //得到角分 for (int k = 0; k < lenlast; k++) ...{ int p = Integer.parseInt(last.substring(lenlast - 1 - k, lenlast - k)); resultString = numberCN[p] + unit[k] + resultString; last = last.substring(0, lenlast - 1 - k); } //得到整数 for (int i = 0; i < len; i++) ...{ int j = Integer.parseInt(numStr.substring(len - 1 - i, len - i)); resultString = numberCN[j] + unit[(2 + i)] + resultString; numStr = numStr.substring(0, len - 1 - i); } } } catch (Exception e) ...{ e.printStackTrace(); } resultString = resultString.replaceAll("零扦", "零"); resultString = resultString.replaceAll("零佰", "零"); resultString = resultString.replaceAll("零拾", "零"); resultString = resultString.replaceAll("零万", "零"); while (resultString.indexOf("零零") > 0) ...{ resultString = resultString.replaceAll("零零", "零"); } resultString = resultString.replaceAll("零亿", "亿"); //防止类似零扦、零百等的出现 return resultString; }}