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

/**
 * 把 数字 转换成 人民币表达方式 
 * 例如(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)); // 输出壹仟零壹拾壹元
    }

}

 

posted on 2017-11-13 19:23    阅读(1077)  评论(0编辑  收藏  举报