package Test;public class Test { public static void main(String[] args){ //测试 System.out.PRintln(convertNumber(3500908)); System.out.println(convertNumber(101000001010L)); } public static String convertNumber(long number){ //定义字符数组存储中国数字写法格式 final char[] chineseNumber = new char[] { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; //定义字符数组存储中国数字的单位 final char[] units = new char[] { '圆', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟'}; //定义一个字符串缓冲区对字符进行存储 StringBuilder sb = new StringBuilder(); int index=0; long lastNumber = 0; while(number!=0){ lastNumber = number%10; sb.insert(0,units[index++]); sb.insert(0,chineseNumber[(int) lastNumber]); number=number/10; } //去零操作,通过正则表达式 return sb.toString().replaceAll("零[拾佰仟]","零").replaceAll("零+亿","亿").replaceAll("零{4}万","零"). replaceAll("零+万","万").replaceAll("零+圆","圆").replaceAll("零+","零")+"整"; }}
新闻热点
疑难解答