A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

/**
* 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("零圆", "圆整");
        }

}
您需要登录后才可以回帖 登录 | 加入黑马