金额变换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。
public class Money { private static final char[] data = new char[] { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; private static final char[] units = new char[] { '元', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿' }; public static String convert(int money) { StringBuffer sbf = new StringBuffer(); int unit = 0; while (money != 0) { sbf.insert(0, units[unit++]); int number = money % 10; sbf.insert(0, data[number]); money /= 10; } //未去零方法 如:100000000结果:壹亿零仟零佰零拾零万零仟零佰零拾零元 // return sbf.toString(); //去零方法 如:100000000结果:壹亿元 return sbf.toString().replaceAll("零[拾佰仟万亿]", "零").replaceAll( "零+万", "万").replaceAll("零+元", "元").replaceAll("零+", "零"); } /** * Test * @param args */ public static void main(String[] args) { System.out.println(convert(100000000)); } }