Java阿拉伯数字转中文数字

带单位转换的我只将数字范围定在十万以内的正数并且没考虑 0
需要向上调整范围的童鞋自己修改代码呦

欢迎指出错误

先看效果再看代码在这里插入图片描述

不多说屁话上代码

/**
     * <p>@description: 阿拉伯数字转中文数字(不带单位) </p>
     * <p>@method: numberConvertToBaseChinese </p>
     * <p>@author: 枫铃也 </p>
     * <p>@since: 2019-10-10 16:03 </p>
     *
     * <p>@return java.lang.String </p>
     */
    public static String numberConvertToBaseChinese(int num) {
        StringBuffer buffer = new StringBuffer();
        char[] nums = {'零', '一', '二', '三', '四', '五', '六', '七', '八', '九'};
        char[] baseChar = Integer.toString(num).toCharArray();
        for (char c : baseChar) {
            buffer.append(nums[c - 48]);
        }
        return buffer.toString();
    }

    /**
     * <p>@description: 阿拉伯数字转中文数字(带单位) </p>
     * <p>@method: numberConvertToChinese </p>
     * <p>@author: 枫铃也 </p>
     * <p>@since: 2019-10-10 16:03 </p>
     *
     * <p>@return java.lang.String </p>
     */
    public static String numberConvertToChinese(int num) {
        char[] nums = {'零', '一', '二', '三', '四', '五', '六', '七', '八', '九'};
        char[] units = {' ', '十', '百', '千', '万'};
        char[] baseChar = Integer.toString(num).toCharArray();
        char[] numChar = new char[baseChar.length];
        for (int i = 0; i < baseChar.length; i++) {
            numChar[i] = nums[baseChar[i] - 48];
        }
        char[] unit = new char[numChar.length];
        unit = Arrays.copyOf(units, unit.length);
        StringBuffer buffer = new StringBuffer();
        for (int i = 0; i < numChar.length; i++) {
            if (numChar[i] != nums[0]) {
                buffer.append(numChar[i]).append(unit[unit.length - i - 1]);
            }else {
                buffer.append(numChar[i]);
            }
        }
        int index = 0;
        while ((index = buffer.indexOf(nums[0] + String.valueOf(nums[0]))) > 0) {
            buffer.replace(index, index + 2, String.valueOf(nums[0]));
        }
        return buffer.toString().substring(0, buffer.length() - 1);
    }

神马,没有注释?
我故意的(此处拒绝板砖和拖鞋之类的具有任何杀伤性的物品),嘿嘿
自己看懂了才算是有收获

欢迎指出错误

发布了4 篇原创文章 · 获赞 3 · 访问量 972

猜你喜欢

转载自blog.csdn.net/qq_18878455/article/details/102485367