欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

阿拉伯数字转换中文写法,阿拉伯中文写法,public class

来源: javaer 分享于  点击 4603 次 点评:123

阿拉伯数字转换中文写法,阿拉伯中文写法,public class


public class Test7{    public static void main(String[] args)    {        String number = "345677886555.4444";        String beforePoint = "";        String afterPoint = "";        int index = -1;        /* 判断是否存在小数点 有就拆分两个部分,没有就直接把number赋值到 beforePoint */        if (-1 != (index = number.indexOf('.')))        {            /* 根据 index 拆分成2部分 */            beforePoint = number.substring(0, index);            afterPoint = number.substring(index);            afterPoint = getAfterPoint(afterPoint);/* 获取小数点后的中文写法 */        } else        {            beforePoint = number;        }        beforePoint = getBeforePoint(beforePoint);/* 获取小数点前(包括无小数点时)的中文写法 */        System.out.println("阿拉伯数字:" + number);        System.out.println("中文数字:" + beforePoint + afterPoint);    }    /* 获取小数点前(包括无小数点时)的中文写法 */    public static String getBeforePoint(String beforePoint)    {        StringBuffer temp = new StringBuffer();        String[] key =        { "", "拾", "佰", "仟" };/* 3个位值 */        for (int i = 0; i < beforePoint.length(); i++)        {            char ch = beforePoint.charAt(i);/* ch 为当前索引的char值 */            int countBit = beforePoint.length() - 1 - i;/*                                                         * countBit                                                         * 为当前统计的位数,以便于添加 万,亿                                                         */            /* 判断是否为 0 值,不是就进行转换,是则进行else处理 */            if (ch != '0')            {                temp.append(switchNumber(ch) + key[countBit % 4]);            } else            {                char isZeroOrNotstr = temp.toString().charAt(temp.length() - 1);                /* isZeroOrNotstr 获取最后一位的 中文写法,在后面进行判断是否为 “零” */                /* 不等于“零” 才进行添加,一旦存在“零” 了,就不添加了 */                if (isZeroOrNotstr != '零')                {                    temp.append("零");                }            }            char isZeroOrNotstr = temp.toString().charAt(temp.length() - 1);            /* isZeroOrNotstr 获取最后一位的 中文写法,在后面进行判断是否为 “零” */            if (countBit == 4)/* 判断当前 countBit位数 是否为 4,是就添加“万” */            {                /* 假如最后一位中文写法为 “零”了,则进行替换,替换成 “万” */                if (isZeroOrNotstr == '零')                {                    temp.replace(temp.length() - 1, temp.length(), "万");                } else                {                    temp.append("万");                }            }            if (countBit == 8)/* 判断当前 countBit位数 是否为8,是就添加“亿” */            {                /* 假如最后一位中文写法为 “零”了,则进行替换,替换成 “亿” */                if (isZeroOrNotstr == '零')                {                    temp.replace(temp.length() - 1, temp.length(), "亿");                } else                {                    temp.append("亿");                }            }        }        return temp.toString();    }    /* 获取小数点后的中文写法 */    public static String getAfterPoint(String afterPoint)    {        StringBuffer temp = new StringBuffer("点");/* 首先加个 “点” */        /* 小数点依次转换,不考虑位值 */        for (int i = 0; i < afterPoint.length(); i++)        {            temp.append(switchNumber(afterPoint.charAt(i)));        }        return temp.toString();    }    /* 数字 ---转换---- 中文写法的方法 */    private static String switchNumber(char ch)    {        String returnStr = "";        switch (ch)        {        case '1':            returnStr = "壹";            break;        case '2':            returnStr = "贰";            break;        case '3':            returnStr = "叁";            break;        case '4':            returnStr = "肆";            break;        case '5':            returnStr = "伍";            break;        case '6':            returnStr = "陆";            break;        case '7':            returnStr = "柒";            break;        case '8':            returnStr = "捌";            break;        case '9':            returnStr = "玖";            break;        case '0':            returnStr = "零";            break;        }        return returnStr;    }}//该片段来自于http://byrx.net
相关栏目:

用户点评