十万以下(非负)阿拉伯数字转换成符合口语习惯的汉字
十万以下(非负)阿拉伯数字转换成汉字
public static String AtoC(int num) {
String[] map=new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
String[] map2=new String[] {"","拾","佰","仟","萬"};
if(num>=100000||num<0) {
System.out.println("beyond bounds");
return "";
}
if(num==0)
return map[0];
int length=Integer.toString(num).length();
boolean b=num%10==0;//num是否能整除10
boolean mark=false;//判定是否有多个零位相连
int[] temp=new int[length];
for(int k=length-1;k>=0;k--) {
temp[k]=num%10;num/=10;
}
String str="";
for(int k=0;k<length;k++) {
int kk=temp[k];
if(kk!=0) {
str+=map[kk]+map2[length-k-1];
mark=true;
}
else if(mark) {
str+=map[0];
mark=false;
}
}
return b?str.substring(0, str.length()-1):str;
}