/**
* @author sunpander
* time: 08-12-11 19:16
* 把输入的数字转换成人民币大写的形式
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class ChangeNumToRMB {
String moneyStrs
[] = { "零",
"壹",
"贰",
"叁",
"肆",
"伍",
"陆",
"柒",
"捌",
"玖" };
public static void main
(String[] args
) {
// TODO Auto-generated method stub
boolean isDebug = true;
while (isDebug) {
int num = 0;
System.
out.
println("请输入需要转换的金额:");
boolean isWrongInput = true;
while (isWrongInput) {
try {
+ " 的整数");
// TODO Auto-generated catch block
// e.printStackTrace();
isWrongInput = true;
continue;
}
isWrongInput = false;
}
ChangeNumToRMB chan = new ChangeNumToRMB();
changedStr = chan.getChangedString(num);
}
}
public String getChangedString
(int num
) {
// Money用于存放输入的金额数
int moneyNum = num;
System.
out.
println("输入的钱数是:");
if (moneyNum < 0) {
System.
out.
println("数字必须大于零");
} else if (moneyNum == 0) {
moneyStr = "零元";
}
// 只有四位数,即最大9999.小于10000
else if (moneyNum < 10000) {
moneyStr = this.getFourNumStr(moneyNum) + "元";
}
// 大于一万,小于一千万
else if (moneyNum <= 10000000)// && moneyNum>10000)
{
int firstFourNum, lastFourNum;
firstFourNum = moneyNum / 10000;
lastFourNum = moneyNum % 10000;
String firstFourStr
= this.
getFourNumStr(firstFourNum
);
String lastFourStr
= this.
getFourNumStr(lastFourNum
);
if (!lastFourStr.contains("仟"))
lastFourStr = "零" + lastFourStr;
moneyStr = firstFourStr + "万" + lastFourStr + "元";
}
// 大于一千万.即上亿但小于最大整数
else if (moneyNum
< Integer.
MAX_VALUE)// && moneyNum>10000000)
{
int firstFourNum, secondFourNum, lastFourNum;
firstFourNum = moneyNum / 100000000;
secondFourNum = (moneyNum / 10000) % 1000;
lastFourNum = moneyNum % 10000;
String firstFourStr
= this.
getFourNumStr(firstFourNum
);
String secondFourStr
= this.
getFourNumStr(secondFourNum
);
String lastFourStr
= this.
getFourNumStr(lastFourNum
);
if (!lastFourStr.contains("仟"))
lastFourStr = "零" + lastFourStr;
if (!secondFourStr.contains("仟"))
secondFourStr = "零" + secondFourStr;
moneyStr = firstFourStr + "亿" + secondFourStr + "万" + lastFourStr
+ "元";
} else
System.
out.
println("someting is wrong");
return moneyStr;
}
public String getFourNumStr
(int fourNum
) {
int qian, bai, shi, ge;
ge = fourNum % 10;
shi = (fourNum % 100) / 10;
bai = (fourNum % 1000) / 100;
qian = fourNum / 1000;
if (qian != 0) {
strTemp = strTemp.concat(moneyStrs[qian] + "仟");
strTemp = strTemp.concat(moneyStrs[bai] + "佰");
strTemp = strTemp.concat(moneyStrs[shi] + "什");
strTemp = strTemp.concat(moneyStrs[ge]);
strTemp = strTemp.replace("零佰", "零");
strTemp = strTemp.replace("零什", "零");
strTemp = strTemp.replace("零零", "零");
strTemp = strTemp.replace("零零", "零");
if (strTemp.endsWith("零"))
strTemp = strTemp.substring(0, strTemp.length() - 1);
} else if (bai != 0) {
strTemp = strTemp.concat(moneyStrs[bai] + "佰");
strTemp = strTemp.concat(moneyStrs[shi] + "什");
strTemp = strTemp.concat(moneyStrs[ge]);
strTemp = strTemp.replace("零什", "零");
strTemp = strTemp.replace("零零", "零");
if (strTemp.endsWith("零"))
strTemp = strTemp.substring(0, strTemp.length() - 1);
} else if (shi != 0) {
strTemp = strTemp.concat(moneyStrs[shi] + "什");
strTemp = strTemp.concat(moneyStrs[ge]);
if (strTemp.endsWith("零"))
strTemp = strTemp.substring(0, strTemp.length() - 1);
} else
strTemp.concat(moneyStrs[ge]);
return strTemp;
}
}