#简单实现数字转换为汉字项目 (留给自己用的)

来源:互联网 发布:手机淘宝申请店铺 编辑:程序博客网 时间:2024/06/07 17:24

简单实现数字转换为汉字项目


因为有将数字转换成汉字的需求,就写了个简单的实现案例,考虑到现实生活里很少有十万以上的需求,就将范围写在十万以下。


/** * 此Demo提供了将数字转化为汉字的方法 * @author Bacchusgift * */public class NumsToWords {    public static void main(String[] args) {        int a = 10101;        System.out.println(changeNumToString(10101));    }    /*    运行结果:一万零一百零一    */    /**     * 传入一个五位数,返回中文五位数     * @param i     * @return     */    public static String motifyNum(int i){        String str = null;        if(i<99999){              str = changeNumToString(i);           }           char[] array = str.toCharArray();        ArrayList<Character>arr = new ArrayList<>();            for (int j = 0; j < array.length; j++) {            arr.add(array[j]);        }        for (int j = 0; j < arr.size(); j++) {            if(arr.get(j)=='零'&&j!=arr.size()-1){                arr.remove(arr.get(j+1));            }        }        for (int j = 0; j < arr.size()-1; j++) {            if(arr.get(j)=='零'&&arr.get(j+1)=='零'){                arr.remove(j);                j--;            }        }        if((arr.get(arr.size()-1))=='零'){            arr.remove(arr.size()-1);        }        String str2 = "";        for (Character character : arr) {            str2 += character.charValue();        }        return  str2;    }    /**     * 没有修饰的方法     * @param i 数字     * @return 未尽格式化后的汉字(需要处理封后才可以使用)     */    private static String changeNumToString(int i){        String nums []= {"零","一","二","三","四","五","六","七","八","九"};        String lagerNum [] ={"","","十","百","千","万","亿"};/*   此处的specialNum是为了汉语习惯省略一十一、一十二这样的说法。没有使用,故注释掉String specialNum[] ={"十","十一","十二","十三","十四","十五","十六","十七","十八","十九"};*/        int length = Integer.toString(i).length();        System.out.println(length);        String s ="";        if(length<6){            ArrayList<Integer> indexs = new ArrayList<>();            indexs.add(0);            indexs.add(1);            int temp =1;            for (int index = 1; index < length; index++) {                  temp *= 10;                  indexs.add(temp);            }            System.out.println(indexs);            for (int j = length; j >0; j--) {                 s += nums[i/indexs.get(j)%10]+lagerNum[j];            }           }           return s;       }}
原创粉丝点击