金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。
public class AnswerB12 {
private static final char[] data = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' };
private static final char[] units = { '元', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿' };
public static void main(String[] args) {
System.out.println(toUpcaseMoney(convert(100215)));
}
private static String toUpcaseMoney(String money) {
return new StringBuilder(money).toString().replaceAll("零[拾佰仟]", "零").replaceAll("零+万", "万")
.replaceAll("零+元", "元").replaceAll("零+", "零");
}
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;
}
return sbf.toString();
}
}