把数字转换成人民币大写的形式Java类详解编程语言
2023-06-13 09:20:28 时间
System.out.println("请输入需要转换的金额:");
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
boolean isWrongInput = true;
while (isWrongInput) {
try {
String str = br.readLine();
num = Integer.parseInt(str);
} catch (Exception e) {
System.out.println("输入数字有误,必须是:0" + "到" + Integer.MAX_VALUE
+ " 的整数");
// 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;
String moneyStr = "";
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");
System.out.println(moneyStr);
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;
String strTemp = "";
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;
}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10114.html
cjava相关文章
- 编写java判断闰年_用Java程序判断是否是闰年的简单实例[通俗易懂]
- Java多态理解_什么是java多态
- Java生成随机数组_java生成唯一数字
- Java—java.util.calendar类详解「建议收藏」
- JAVA外文参考文献_java参考文献近五年
- java 封装的基类Springjdbc可以通用详解编程语言
- Java 绘制环形的文字 (Circle Text Demo)详解编程语言
- java截屏简单例子详解编程语言
- java连接mysql示例代码详解编程语言
- Java 使用系统剪切板详解编程语言
- java 压缩解压文件详解编程语言
- java使用IMAP连接Gmail并解析邮件详解编程语言
- java基础学习总结——线程(二)详解编程语言
- 处理 Java 的“Cannot allocate memory”错误详解编程语言
- 四种不同的方法创建java对象详解编程语言
- java学习笔记09–反射机制详解编程语言
- 使用java读写Properties配置文件详解编程语言
- 探讨Java到底是不是一种纯面向对象语言详解编程语言
- Java NIO Channel通道详解编程语言
- JAVA 8 Streams详解编程语言
- [Java] 获取保存某一个网站的内容详解编程语言
- java日期工具类详解编程语言
- Java IO(四):字符流详解编程语言
- Java并发包总结(JUC)详解编程语言
- java List排序问题详解编程语言
- js,java,浮点数运算错误及应对方法详解编程语言
- 2020年11月编程语言排行:C、Python、Java