1 package test; 2 /* 3 *第10题: 金额转换,阿拉伯数字转换成中国传统形式。 例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整 4 * 步骤: 1.创建一个转换的方法converNumber(long number) 2.将阿拉伯形式转换成中国传统形式 3.去零操作 4.正则表达式替换操作 5 * */ 6 public class Test17 7 { 8 public static void main(String[] args) 9 {10 // 测试11 System.out.PRintln(convertNumber(3500908));12 System.out.println(convertNumber(101000001010L));13 System.out.println(convertNumber(10000000000L));14 }15 public static String convertNumber(long number)16 {17 // 定义字符数组存储中国数字写法格式18 final char[] chineseNumber = new char[] { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' };19 // 定义字符数组存储中国数字的单位20 final char[] units = new char[] { '圆', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟' };21 // 定义一个字符串缓冲区对字符进行存储22 StringBuilder sb = new StringBuilder();23 int index = 0;24 long lastNumber = 0;25 while (number != 0)26 {27 lastNumber = number % 10;28 sb.insert(0, units[index++]);29 sb.insert(0, chineseNumber[(int) lastNumber]);30 number = number / 10;31 }32 // 去零操作,通过正则表达式33 return sb.toString().replaceAll("零[拾佰仟]", "零").replaceAll("零+亿", "亿").replaceAll("零{4}万", "零").replaceAll("零+万", "万").replaceAll("零+圆", "圆").replaceAll("零+", "零") + "整";34 }35 }
新闻热点
疑难解答