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

神馬,沒有註釋?
我故意的(此處拒絕板磚和拖鞋之類的具有任何殺傷性的物品),嘿嘿
自己看懂了纔算是有收穫

歡迎指出錯誤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章