人民币 大写转换
public class NumberData { /**-人民币 大写转换 * * @param num ----要转化的数字 * @return */ public static String makeUpperCaseSum(String numStr) { String isNeg = "";//正或者负 double num = Double.parseDouble(numStr); if (num < 0) { num *= -1; isNeg = "负"; numStr = numStr.substring(1); } final String[] upper_number = { "零","壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; final String[] number_dw = { "", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万" }; String operate = numStr; String upper_str = ""; String upper_str_pre = ""; String upper_str_later = ""; String vsDx; int i, j, point_pos, int_len; if (num < 0.01) { return "零圆整"; } upper_str_pre = ""; point_pos = operate.indexOf("."); if (point_pos == -1) int_len = operate.length(); else int_len = point_pos; if (int_len > number_dw.length) return "too long !!!"; if (num > 0) { for (i = 0; i < operate.length(); i++) { j = int_len - i; if(j>0){//整数部分 int k = Integer.parseInt(operate.substring(i, i + 1)); if(k==0){//数字为0时 if(j==5||j==9)//单位为亿或者万时 upper_str_pre += upper_number[k] + number_dw[j-1]; else upper_str_pre += upper_number[k]; } else upper_str_pre += upper_number[k] + number_dw[j-1]; }else if(j<0){//小数部分 int k = Integer.parseInt(operate.substring(i, i + 1)); upper_str_later += upper_number[k]; if(j==-1) upper_str_later += "角"; else upper_str_later += "分"; } } //end for } //end if upper_str_pre += "圆"; while(upper_str_pre.indexOf("零零")!=-1){ upper_str_pre = upper_str_pre.replaceAll("零零","零"); } upper_str_pre = upper_str_pre.replaceAll("零万","万"); upper_str_pre = upper_str_pre.replaceAll("零亿","亿"); upper_str_pre = upper_str_pre.replaceAll("亿万","亿零"); upper_str_pre = upper_str_pre.replaceAll("零零","零"); upper_str_pre = upper_str_pre.replaceAll("零圆","圆"); if("圆".equals(upper_str_pre)) upper_str_pre = ""; upper_str = isNeg+upper_str_pre + upper_str_later; upper_str = upper_str.replaceAll("零角零分","整"); if(point_pos == -1) upper_str += "整"; return upper_str; } }