人民币 大写转换

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;
    }
}

 

posted @ 2015-02-09 15:07  残星  阅读(520)  评论(0编辑  收藏  举报