黑马程序员技术交流社区

标题: 金额转换,阿拉伯数字转换成中国传统形式。 [打印本页]

作者: 陈化身1    时间: 2015-8-26 20:55
标题: 金额转换,阿拉伯数字转换成中国传统形式。
public class Test10 {
       
        //创建一个字符数组,存放中文数字
        private static final char[] data = new char[] { '零', '壹', '贰', '叁', '肆',
                        '伍', '陆', '柒', '捌', '玖' };
       
        //创建一个字符数组存放单位
        private static final char[] units = new char[] { '元', '拾', '佰', '仟', '万',
                        '拾', '佰', '仟', '亿', '拾' };

        public static void main(String[] args) {

                System.out.println(convert(1070080009));
        }

        private static String convert(int money) {
               
                //创建一个字符串缓冲区
                StringBuffer sbf = new StringBuffer();
               
//                定义一个int类型变量作为索引
                int unit = 0;
                while (money != 0) {
                       
                        //当传入的数字不为零时,就把中文数组插入到指定位置
                        sbf.insert(0, units[unit++]);
                       
                        //获得一个number变量
                        int number = money % 10;
                       
                        //把number作为字符数组索引,插入到缓冲区指定位置
                        sbf.insert(0, data[number]);
                        money /= 10;
                }
               
                //用零对前面的值进行替换,再返回toString方法
                return sbf.toString().replaceAll("零[拾佰仟]", "零").replaceAll("零+万", "万")
                                .replaceAll("零+元", "元").replaceAll("零+", "零");
        }

}
我在网上找到一个比较简单的方法,while里面的代码我不清楚具体是什么意思,求大神看一下,很急 啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2