import java.util.*;
public class test {
public static void main(String[] arg) {
String d="拾佰仟万拾佰仟亿拾佰仟万";
String s="零壹贰叁肆伍陆柒捌玖";
boolean zero=false, fu=false;
long value;
int count=0;
String Cvalue="";
Scanner r=new Scanner(System.in);
while(!r.hasNextInt()) {
System.out.println("Must a integer can be inputted!");
r.next();
}
value=r.nextInt();
if(value==0) {//如果为零,直接输出
Cvalue="零";
System.out.println(Cvalue);
return;
}
else if(value<0) {//做负数标记,以便以后统一处理
value=java.lang.Math.abs(value);
fu=true;
}
while(value>0) {
int b=(int)(value % 10);
if(!zero || b!=0) {//不是连续零,就需要转换数据
String t="";
if(b!=0) {//非零的正常情况
t=s.substring(b,b+1);
if(count>0) t+=d.substring(count-1,count);
zero=false;
}
else if(count!=4 && count!=8){//零的情况,且不是万和亿位,应该写零
t="零";
zero=true;
}
Cvalue=t+Cvalue;
}
if(count==4 && !Cvalue.contains("万")) Cvalue="万"+Cvalue;//在第万位,添加万
if(count==8 && !Cvalue.contains("亿")) Cvalue="亿"+Cvalue;//在第亿位,添加亿
count++;
value/=10;
}
Cvalue=Cvalue.replaceFirst("亿万","亿");//排除亿万连接
Cvalue=Cvalue.replaceFirst("零亿","亿");//排除零亿连接
Cvalue=Cvalue.replaceFirst("零万","万");//排除零万连接
if(Cvalue.endsWith("零")) Cvalue=Cvalue.substring(0,Cvalue.length()-1);//去除尾零
if(fu) Cvalue="负的"+Cvalue;//添加负标记
System.out.println(Cvalue);
}
} |