/*
Alex.Zhang 版数字转中文写法函数,转载请注明原地址:http://blog.csdn.net/ranjio_z
*/
public<T> String getCnNumber(T num){
String number=num.toString();
LinkedList<String> cnNumber=new LinkedList<String>();
for(int i=0;i<number.length();i++){
switch(number.charAt(i)){
case '0':cnNumber.add("零");break;
case '1':cnNumber.add("一");break;
case '2':cnNumber.add("二");break;
case '3':cnNumber.add("三");break;
case '4':cnNumber.add("四");break;
case '5':cnNumber.add("五");break;
case '6':cnNumber.add("六");break;
case '7':cnNumber.add("七");break;
case '8':cnNumber.add("八");break;
case '9':cnNumber.add("九");break;
}
switch((number.length()-1-i)%4){
case 0:
cnNumber.add("");
break;
case 1:
cnNumber.add("十");
break;
case 2:
cnNumber.add("百");
break;
case 3:
cnNumber.add("千");
break;
}
if((number.length()-1-i)%4==0){
switch((number.length()-1-i)/4){
case 0:
cnNumber.add("");
break;
case 1:
cnNumber.add("万");
break;
case 2:
cnNumber.add("亿");
break;
case 3:
cnNumber.add("万亿");
break;
case 4:
cnNumber.add("亿亿");
break;
}
}
}
StringBuffer sb=new StringBuffer();
for(int i=0;i<cnNumber.size();i++){
sb.append(cnNumber.get(i));
}
return sb.toString().replace("零千","零").replace("零百","零").replace("零十","零").replaceAll("零+","零").replace("零亿亿","亿亿零").replace("零万亿","万亿零").replace("零亿","亿零").replace("零万","万零").replaceAll("零+","零").replace("亿零万零","亿零").replace("万亿零亿零","万亿零").replace("亿亿零万亿零","亿亿零").replaceAll("零$","");
}