阿拉伯数字转中文 JAVA

将阿拉伯数字转换为中文字工具类:

    private static String[] numArray = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};
    private static String[] unitArray = {"十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千"};

    /**
     * 阿拉伯数字转中文,包含单位
     * 1234:一千二百三十四
     */
    private static String toChineseIncludeUnit(String str) {
        if(str == null || "".equals(str.trim())){
            return "";
        }
        StringBuffer sb = new StringBuffer();
        char[] numChar = str.trim().toCharArray();
        int size = numChar.length;
        for (int i = 0; i < size; i++) {
            int num = Integer.parseInt(String.valueOf(numChar[i]));
            if (i != 0) {
                sb.append(unitArray[size - i - 1] + numArray[num]);
            }else {
                sb.append(numArray[num]);
            }
        }
        return sb.toString().replaceAll("零[千百十]", "零").replaceAll("零+万", "万")
                .replaceAll("零+亿", "亿").replaceAll("亿万", "亿零")
                .replaceAll("零+", "零").replaceAll("零$", "");
    }

    /**
     * 阿拉伯数字转中文,不包含单位
     * 10023:一零零二三
     */
    private static String toChinese(String str) {
        StringBuffer sb = new StringBuffer();
        for (char c : str.toCharArray()) {
            sb.append(numArray[Integer.parseInt(String.valueOf(c))]);
        }
        return sb.toString();
    }

测试:

    System.out.println(toChineseIncludeUnit("520001"));//五十二万零一
    System.out.println(toChinese("520001"));//五二零零零一

你可能感兴趣的:(Java,java,开发语言,c++)