Java实现 “ 将数字金额转为大写中文金额 ”

该博客分享了一段Java代码,用于将数字金额转换为大写中文金额,如12.56转换为"壹拾贰元伍角陆分"。代码能够处理正负数、包含小数部分的金额,并对输入做了有效性检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:
    输入数字金额参数,运行程序得到其对应的大写中文金额;例如:输入 12.56,输出 12.56 : 壹拾贰元伍角陆分;重点来了:本人亲测有效。

奉上代码:
/**
 * @Title: ConvertUpMoney
 * @Description:  将数字金额转换为大写中文金额
 * @date: 2019年6月18日 下午10:52:27
 */
public class ConvertUpMoney {
 
    // 大写数字
    private static final String[] NUMBERS = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
    // 整数部分的单位
    private static final String[] IUNIT = {"元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","万","拾","佰","仟"};
    // 小数部分的单位
    private static final String[] DUNIT = {"角","分","厘"};
 
 
    /**
     *  转换为大写的中文金额
     * @param str 字符串类型的 金额数字
     * @return
     */
    public static String toChinese(String str) {
        // 判断输入的金额字符串是否符合要求
        if (StringUtils.isBlank(str) || !str.matches("(-)?[\\d]*(.)?[\\d]*")) {
            return "抱歉,请输入数字!";
        }
 
        if("0".equals(str) || "0.00".equals(str) || "0.0".equals(str)) {
            return "零元";
        }
 
        // 判断金额数字中是否存在负号"-"
        boolean flag = false;
        if(str.startsWith("-")){
            // 标志位,标志此金额数字为负数
            flag = true;
            str = str.replaceAll("-", "");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值