java对于金额为汉字的处理转换

    /**
     * 大写金额转数字
     *
     */
    public static String ChineseConvertToNumber(String chineseAmount) {
   
        if (chineseAmount == null || chineseAmount.length() <= 0 || chineseAmount == "") {
   
            return null;
        }
        //移除计算干扰文字
        chineseAmount = chineseAmount
                .replace("元", "")
                .replace("整", "");

        // 字符切割
        char[] wordCharArray = chineseAmount.toCharArray();

        //最终要返回的数字金额
        BigDecimal numberAmount = BigDecimal.ZERO;

        //金额位标志量
        //表示有分位
        boolean fen = false;
        //表示有角位
        boolean jiao = false;
        // 表示个位不为0
        boolean yuan = false;
        //表示有十位
        boolean shi = false;
        //表示有百位
        boolean bai = false;
        //表示有千位
        boolean qian = false;
        //表示有万位
        boolean wan = false;
        //表示有亿位
        boolean yi = false;

        //从低位到高位计算
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中可以使用以下方法将金额转换中文大写形式: ```java import java.math.BigDecimal; public class AmountConverter { private static final String[] CN_NUMBERS = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; private static final String[] CN_UNITS = {"", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟"}; public static String convertToChineseNumber(String amount) { BigDecimal bdAmount = new BigDecimal(amount); StringBuilder sb = new StringBuilder(); String integerPart = bdAmount.toBigInteger().toString(); for (int i = 0; i < integerPart.length(); i++) { int num = integerPart.charAt(i) - '0'; sb.append(CN_NUMBERS[num]); if (num != 0) { sb.append(CN_UNITS[integerPart.length() - i - 1]); } } return sb.toString(); } } ``` 上述代码定义了一个`AmountConverter`类,其中的`convertToChineseNumber`方法可以将输入的金额转换中文大写形式。使用`BigDecimal`类来处理金额,保证精度和正确性。然后根据金额的个位、十位、百位等进行转换,并拼接对应的单位。 使用示例: ```java public class Main { public static void main(String[] args) { String amount = "12345"; String chineseNumber = AmountConverter.convertToChineseNumber(amount); System.out.println(chineseNumber); // 输出:壹万贰仟叁佰肆拾伍 // 可以将中文大写和对应的单位进行字符串的拼接并一起输出 String chineseAmount = chineseNumber + ""; System.out.println(chineseAmount); // 输出:壹万贰仟叁佰肆拾伍 } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值