千家信息网

Java怎么实现人民币小写转换为大写

发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,本文小编为大家详细介绍"Java怎么实现人民币小写转换为大写",内容详细,步骤清晰,细节处理妥当,希望这篇"Java怎么实现人民币小写转换为大写"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
千家信息网最后更新 2025年11月09日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安全错误 数据库的锁怎样保障安全 计算机平面设计和网络技术区别 管理员重置服务器密码是什么 深圳网络技术培训机构 中镁控股有限公司网络技术 通俗的网络技术介绍 dellt110服务器主板 三级网络技术指定软件 网络安全总队为何需要外语 辽宁网络安全测评 宽带网络技术复习提纲 数据库系统概论(第五版) 青浦区营销软件开发价钱 数据库中基本关系的性质是什么 东海质量网络技术诚信经营 上海竞讯网络技术 武汉营销网络安全维护资费 南昌服务器ups电源 如何通过网络安全自查 数据库查看器apk 软件开发人员 注册公司 数据库登录窗体怎么运行 青浦区笔记本服务器 软件开发适合人的组 北京爱宠乐园网络技术有限公司 公司如何管控软件开发安全 中镁控股有限公司网络技术 计算机网络技术的职业前景 高中计算机网络技术完整版视频 第二届中国北京 大数据库 软件开发服务龙头股票
0