import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class RMBUpper {
private final String []dws=new String[]{"","拾","佰","仟","万","拾万","佰万","仟万","亿","拾亿","佰亿","仟亿"};
private final String []szs=new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","镹"};
private String qs;
private String result="";
/**
* 功能:转化十亿以内的人民币数字为大写格式
* @param args
*/
public static void main(String[] args) {
BufferedReader in
= new BufferedReader(new InputStreamReader(System.in));
String r="0";
do{
System.out.println("请输入要转换为大写的十亿以内的正整数:");
try {
r=in.readLine();
r=Integer.parseInt(r)+"";
} catch (IOException e) {
e.printStackTrace();
}
}
while(!(Integer.parseInt(r)>0&&Integer.parseInt(r)<1000000000));
RMBUpper rmb=new RMBUpper(r+"");
System.out.println(rmb.getUpper());
}
public String getUpper() {
// TODO 获得输入的大写形式
this.com();
return this.result;
}
private void com() {
// TODO 开始计算
this.turnNumNotZero();
this.deleteTooMuchZero();
this.turnZero();
}
private void turnZero() {
// TODO 将0转换为零
if(this.result.lastIndexOf("0")==this.result.length()-1){//处理最后是零的情况
this.result=this.result.substring(0,this.result.length()-1);
}
this.result=this.result.replaceAll("0", this.szs[0]);
}
private void deleteTooMuchZero() {
// TODO 删除多余的零
if(this.result.indexOf("00")==-1)return;
this.result=this.result.replace("00", "0");
this.deleteTooMuchZero();
}
private void turnNumNotZero() {
// TODO 将非零数字转换为大写
for(int i=0;i<this.qs.length();i++){
int index=Integer.parseInt(this.qs.charAt(i)+"");
if(index!=0){
this.result+=this.szs[index]+this.dws[this.qs.length()-i-1];
}else{
this.result+="0";
}
}
}
public RMBUpper(String qs) {
this.qs = qs;
}
}