Java怎么实现人民币小写转换为大写
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本文小编为大家详细介绍"Java怎么实现人民币小写转换为大写",内容详细,步骤清晰,细节处理妥当,希望这篇"Java怎么实现人民币小写转换为大写"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
千家信息网最后更新 2025年01月19日Java怎么实现人民币小写转换为大写
本文小编为大家详细介绍"Java怎么实现人民币小写转换为大写",内容详细,步骤清晰,细节处理妥当,希望这篇"Java怎么实现人民币小写转换为大写"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
public class RMBChange { private static String[] nums = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; // 单位还可以往上 private static String[] unit = {"元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万"}; // 小数位如还有需求可以直接往这个数组里加, private static String[] countNum = {"角", "分"}; public static String change(String money) { // 过滤空 if (money == null || "".equals(money)) { return ""; } StringBuilder res = new StringBuilder(); String[] splitStr = money.split("\."); if (splitStr.length > 2) { throw new RuntimeException("输入的参数不是数字!"); } String front = splitStr[0]; // 用于判定0的显示 boolean isZero = true; if (front.length() > unit.length) { throw new RuntimeException("输入的参数大于万亿!"); } for (int i = 0; i < front.length(); i++) { // 整数位处理 int dw = front.length() - i - 1; // 用ASCII码获得数字 int index = (front.charAt(i) - '0'); if (index == 0) { isZero = true; if (dw == 0 || dw == 4 || dw == 8) { // 元,万,亿需要拼接 res.append(unit[dw]); } } else { if (isZero && i != 0) { // 多个0只显示一个 res.append(nums[0]); } isZero = false; res.append(nums[index]); res.append(unit[dw]); } } // 判断是否有小数位 if (splitStr.length > 1) { // 小数位处理,如果不需要则直接删除这个if及内部所有内容 isZero = true; String back = splitStr[1]; if (back.length() > countNum.length) { throw new RuntimeException("小数位小于【" + countNum[countNum.length - 1] + "】!"); } for (int i = 0; i < back.length(); i++) { int index = (back.charAt(i) - '0'); if (index == 0) { isZero = true; } else { if (isZero && i != 0) { res.append(nums[0]); } isZero = false; res.append(nums[index]); res.append(countNum[i]); } } } return res.toString(); }}
测试数据
public static void main(String[] args) { System.out.println(change("9999999999999.99")); // 玖万玖仟玖佰玖拾玖亿玖仟玖佰玖拾玖万玖仟玖佰玖拾玖元玖角玖分 System.out.println(change("5020055606500.00")); // 伍万零贰佰亿零伍仟伍佰陆拾万零陆仟伍佰元 System.out.println(change("4001500050.16")); // 肆拾亿零壹佰伍拾万零伍拾元壹角陆分 System.out.println(change("7854416")); // 柒佰捌拾伍万肆仟肆佰壹拾陆元 System.out.println(change("9556")); // 玖仟伍佰伍拾陆元 System.out.println(change("10086.0")); // 壹万零捌拾陆元 System.out.println(change("263341.26")); // 贰拾陆万叁仟叁佰肆拾壹元贰角陆分 System.out.println(change("3651.06")); // 叁仟陆佰伍拾壹元零陆分 System.out.println(change("1.00")); // 壹元 System.out.println(change("300.00")); // 叁佰元 System.out.println(change("2007.01")); // 贰仟零柒元零壹分 }
输出结果
玖万玖仟玖佰玖拾玖亿玖仟玖佰玖拾玖万玖仟玖佰玖拾玖元玖角玖分
伍万零贰佰亿零伍仟伍佰陆拾万零陆仟伍佰元
肆拾亿零壹佰伍拾万零伍拾元壹角陆分
柒佰捌拾伍万肆仟肆佰壹拾陆元
玖仟伍佰伍拾陆元
壹万零捌拾陆元
贰拾陆万叁仟叁佰肆拾壹元贰角陆分
叁仟陆佰伍拾壹元零陆分
壹元
叁佰元
贰仟零柒元零壹分
读到这里,这篇"Java怎么实现人民币小写转换为大写"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
伍佰
人民
人民币
大写
小写
内容
小数
小数位
文章
参数
处理
输入
妥当
单位
思路
数字
数据
数组
新知
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
如何保护个人网络安全信息
网络安全产品 收集微信
互联网科技有限公司招聘
注意网络安全的英语博客作文
网络安全图文报告论文
网络安全运维工程师是什么意思
涉密网络安全技术管理
电子商务数据库技术ppt
edmx 更改数据库
徐汇区品质数据库服务商新报价
数据库不分大小写
完美世界服务器开放时间
城步网络安全宣传周
市网信办网络安全工程
pgadmin数据库教程
网络安全职业认识
网络安全从几方面
软件开发财政预算
风哥数据库课件密码
考拉互联网科技
精工科技工业互联网
可视化网络技术协议如何写
计算机网络技术有几个大类
交互软件开发费用
吴江区数据网络技术收费
赤峰学网络技术报名
ipad air无服务器
北京学网络技术品牌
考拉互联网科技
海外服务器ap地址