/**
* 10.金额转换,阿拉伯数字转换成中国传统形式。例如:1010 0000 1010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整
*
*/
public class 大写转小写_考虑去零 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Long k = sc.nextLong();
String str = convert(k);
System.out.println(str);
}
public static String convert(long money) {
char[] num = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '拾' };
char[] units = { '圆', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰',
'仟' };
StringBuilder sb = new StringBuilder();
for (int i = 0; money != 0; i++) {
sb.insert(0, units[i]);
sb.insert(0, num[(int) (money % 10)]);
money /= 10;
}
return sb.toString().replaceAll("零+[拾仟佰]", "零").replaceAll("零+万", "万")
.replaceAll("零+亿", "亿").replaceAll("亿万", "亿零")
.replaceAll("零+", "零").replaceAll("零圆", "圆整");
}
}
|
|