public class numberic {
public static void main(String[] args){
printNumToChinese(11124267345786l);
}
private static void printNumUnit(int digit){
String[] num_unit = {"十","百","千","万","亿"};
if(digit%8 == 0 && digit != 0)
System.out.print(num_unit[4]);
if((digit - 4)%8 == 0 && digit%8 != 0)
System.out.print(num_unit[3]);
if((digit - 3)%4 == 0)
System.out.print(num_unit[2]);
if((digit - 2)%4 == 0)
System.out.print(num_unit[1]);
if((digit - 1)%4 == 0)
System.out.print(num_unit[0]);
}
private static void printNumToChinese(long num){
String[] chs_num = {"零","一","二","三","四","五","六","七","八","九","十"};
boolean flag = true;//为了标两亿零七百八十跟两亿三百万零七百八十中要不要加万的区别
for(int i = String.valueOf(num).length() - 1; i >= 0; i--){
int n = (int)(num/Math.pow(10, i));
if(num == 0)
break;
if(n != 0)
System.out.print(chs_num[n]);
if(n != 0){
printNumUnit(i);
}
num = num - n*(long)Math.pow(10, i);
if(n == 0 && i - String.valueOf(num).length() >= 4)
flag = false;
if(i%4 == 0 && n == 0 && flag){
printNumUnit(i);
flag = true;
}
if(i - String.valueOf(num).length() == 0 && n == 0){
System.out.print(chs_num[n]);
}
}
}
}