importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.util.Stack;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassArabToChinese {publicStackstack;publicArabToChinese(){
stack=newStack();
}publicvoidpushToStack(Stackstack,charc){switch(c){case'0':
stack.push("零");break;case'1':
stack.push("壹");break;case'2':
stack.push("贰");break;case'3':
stack.push("叁");break;case'4':
stack.push("肆");break;case'5':
stack.push("伍");break;case'6':
stack.push("陆");break;case'7':
stack.push("柒");break;case'8':
stack.push("捌");break;case'9':
stack.push("玖");break;
}
}publicvoidpushToStack_(Stackstack,String s){intdigit1=5;intdigit2=9;intdigit3=1;for(inti=s.length()-1,j=0,k=0;i>=0;i--){charc=s.charAt(i);
j++;
k++;if(k==2){ stack.push("拾");
}elseif(k==3){
stack.push("佰");
}elseif(k==4){
stack.push("仟");
k=0;
}if(j==digit1){
stack.push("萬");
digit1+=8;
}if(j==digit2){
stack.push("亿");
digit2+=8;
}if(j==digit3&&c=='0') {
digit3+=4;continue;
}elsepushToStack(stack,c);
}
}publicString popToString(Stackstack){
String s="";
StringBuffer buffer=newStringBuffer();while(stack.empty()==false){
buffer.append((String)stack.pop());
}
s=buffer.toString();
s=s.replaceAll("零仟","零");
s=s.replaceAll("零佰","零");
s=s.replaceAll("零拾","零");
s=s.replaceAll("[零]+","零");
s=s.replaceAll("零萬","萬");
s=s.replaceAll("零亿","亿");
s=s.replace("零角","");
s=s.replace("零分","");returns;
}publicstaticvoidmain(String args[])throwsIOException{booleanavailable=false;
String s="";
String s1="";
System.out.print("请输入一个数字:");while(!available){
BufferedReader buffer;
buffer=newBufferedReader(newInputStreamReader(System.in));
s=buffer.readLine();
Pattern pattern=Pattern.compile("^[^0][0-9]+(.[0-9]{1,2})$");
Matcher matcher=pattern.matcher(s);booleanisMatched=matcher.find();if(isMatched==true){
available=true;
}elseSystem.out.println("你输入的数字有错误,请重新输入:");
}
ArabToChinese atc=newArabToChinese();intindex=s.indexOf('.');if(index!=-1){
s1=s.substring(index+1);
s=s.substring(0,index);
atc.pushToStack_(atc.stack, s);
s=atc.popToString(atc.stack)+"圆";if(s1.length()==1){
s1=s1+"0";
}for(inti=1,j=0;i>=0;i--){charc=s1.charAt(i);
j++;if(j==1){
atc.stack.push("分");
}if(j==2){
atc.stack.push("角");
}
atc.pushToStack(atc.stack,c);
}
s1=atc.popToString(atc.stack);
System.out.println("转换后的金钱数字为:"+s+s1);
}else{atc.pushToStack_(atc.stack,s);
s=atc.popToString(atc.stack)+"圆";
s=s.replace("零圆","圆");
System.out.println("转换后的金钱数字为:"+s);
}
}
}
java codepublicclassChineseToArabDigit {publicstaticvoidmain(String args[]){longnum_Buffer=0;longnum_add=0;longnum_mutiply=0;longresult_yi=0;longresult_wan=0;charc1='圆';
String s="壹亿亿圆";//String s="叁仟柒佰贰拾壹萬贰仟叁佰柒拾壹亿捌仟贰佰柒拾叁萬壹仟贰佰捌拾壹圆";intindex=s.indexOf('圆');
s=s.substring(0,index);for(inti=0;i
c1=s.charAt(i+1);
}switch(c){case'零':
num_Buffer=0;break;case'壹':
num_Buffer=1;if(c1=='萬'||c1=='亿'||i==s.length()-1){
num_add+=1;
}break;case'贰':
num_Buffer=2;if(c1=='萬'||c1=='亿'||i==s.length()-1){
num_add+=2;
}break;case'叁':
num_Buffer=3;if(c1=='萬'||c1=='亿'||i==s.length()-1){
num_add+=3;
}break;case'肆':
num_Buffer=4;if(c1=='萬'||c1=='亿'||i==s.length()-1){
num_add+=4;
}break;case'伍':
num_Buffer=5;if(c1=='萬'||c1=='亿'||i==s.length()-1){
num_add+=5;
}break;case'陆':
num_Buffer=6;if(c1=='萬'||c1=='亿'||i==s.length()-1){
num_add+=6;
}break;case'柒':
num_Buffer=7;if(c1=='萬'||c1=='亿'||i==s.length()-1){
num_add+=7;
}break;case'捌':
num_Buffer=8;if(c1=='萬'||c1=='亿'||i==s.length()-1){
num_add+=8;
}break;case'玖':
num_Buffer=9;if(c1=='萬'||c1=='亿'||i==s.length()-1){
num_add+=9;
}break;/**************************************/case'拾':
num_add+=10*num_Buffer;break;case'佰':
num_add+=100*num_Buffer;break;case'仟':
num_add+=1000*num_Buffer;break;/****************************************/case'萬':if(index_lastyi!=-1&&i
num_mutiply=num_add*10000;
}elseif(index_lastyi==-1||i>index_lastyi){
result_wan=num_add*10000;
}
num_add=0;break;case'亿':
num_mutiply=(num_mutiply+num_add)*100000000;
result_yi=num_mutiply;
num_add=0;break;
}
}
System.out.println(result_yi+result_wan+num_add);
}
}