/**
 * 把 数字 转换成 人民币表达方式 
 * 例如(1111)转成 “一千一百一拾一元整”
 */
public class Test02 {

    private static final char[] data = { \'零\', \'壹\', \'贰\', \'叄\', \'肆\', \'伍\', \'陆\',
            \'柒\', \'捌\', \'玖\' };
    private static final char[] units = { \'元\', \'拾\', \'佰\', \'仟\', \'万\', \'拾\', \'佰\',
            \'仟\', \'亿\' };

    public String convert(int money) {
        StringBuffer sbf = new StringBuffer();
        int uint = 0;
        while (money != 0) {
            sbf.insert(0, units[uint++]);
            sbf.insert(0, data[money % 10]);
            money = money / 10;
        }
        // 去零
        return sbf.toString().replaceAll("零[拾佰仟]", "零").replaceAll("零+万", "万")
                .replaceAll("零+元", "元").replaceAll("零+", "零");

    }

    public static void main(String[] args) {
        Test02 rmb = new Test02();
        System.out.println(rmb.convert(1111)); // 输出壹仟零壹拾壹元
    }

}

 

版权声明:本文为areyouready原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/areyouready/p/7827739.html