能让阿拉伯数字读成符合汉语语法和汉语习惯的中文.就这我 还做了一天呢!~~郁闷.
public class ITCS {
public static void main(String[] args) {
String[] num = new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
String[] unit1 = new String[]{"","拾","佰","仟"};
String[] unit2 = new String[]{"","万","亿","万"};
String str=args[0],string = "",str_2 = null;
System.out.print(str+"----->");
str=Str(str);
int i=str.length();
if(i==1)
string=num[Integer.parseInt(str)];
else{
int a=i/4,b=i%4,t=b;
String[] str_1=new String[a];
str_2=str.substring(0,b);
boolean boo1=true;
do{
for(int r=0;r<str_2.length();r++){
if(str_2.charAt(r)=='0'){
if(Str(str_2.substring(r,str_2.length())).equals("0"))
break;
else if(!(string.substring(string.length()-1,string.length()).equals("零")))string=string+"零";
}else
string=string+num[Integer.parseInt(""+str_2.charAt(r))]+unit1[b-1];
b--;
}
if(i!=a*4&!str_2.equals("0000"))
string=string+unit2[a];
b=4;
if(a>0){
str_2=str.substring(t,t+4);
}
t=t+4;
if(a<=0)boo1=false;
a--;
}while(boo1);
}
//System.out.println(str_2+"~~~~~"+str_2.length());
if(string.substring(0,2).equals("壹拾"))
string=string.substring(1,string.length());
System.out.println(string);
}
public static String Str(String str){
//Tab tab = null;
boolean boo=true;
int i=0;
while(boo){
if(str.charAt(0)=='0'){
i++;
if(str.length()==1){
boo=false;break;
}
str=str.substring(1,str.length());
}
else
boo=false;
}
//tab.setS(str);tab.setI(i);
return str;
}
}