转自:https://blog.csdn.net/rmnjava/article/details/24693733

public class MoneyUtil {/*** 中文中简写的汉字金额 经常使用*/private static String[] rmbNumbers = new String[]{"一", "二", "三", "四", "五", "六", "七", "八", "九", "两", "廿", "卅", "○"};/*** 中文中繁写的汉字金额 经常使用*/private static String[] bigNumbers = new String[]{//大写的汉字"壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "俩", "廿", "卅", "零"};/*** 与汉字相应的转化的数字*/private static Long[] tonumbers = new Long[]{//转化为阿拉伯数字1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 2L, 2L, 3L, 0L};/*** 倍数关键词 简写 注意:一定要由大到小*/private static String[] rmbMult = new String[]{//大写中间隔的倍数"亿", "万", "千", "百", "十"};/*** 倍数关键词 繁写*/private static String[] bigRmbMult = new String[]{"億", "萬", "仟", "佰", "拾"};/*** 与倍数关键词对应的倍数*/private static Long[] toMult = new Long[]{//转化为阿拉伯的倍数100000000L, 10000L, 1000L, 100L, 10L};/*** 大写转化为小写的过程操作,只处理到元,不带有单位** @param money 大写的金额,不带有单位 例如:1.二十一万 2.六五四三 3 贰拾* @return*/public static String rmbBigToSmall(String money) {if (StringUtils.isEmpty(money)) {return "0";}//处理大写金额的元、整money = money.replace("元", "").replace("整", "");Long number = 0L;//遍历倍数的中文词遍历的时候一定要注意 选取的倍数词为最后一个倍数词,此次遍历为第一次遍历for (int i = 0; i < rmbMult.length; i++) {int index = money.lastIndexOf(rmbMult[i]) == -1 ? money.lastIndexOf(bigRmbMult[i]) : money.lastIndexOf(rmbMult[i]);if (index >= 0) {String storeMult = money.substring(0, index);money = money.substring(index + 1);//对于 十九万 这样的特殊的十的情况进行特殊处理if ((storeMult == null || storeMult.length() <= 0) && toMult[i].intValue() == 10) {number = number + toMult[i];} else {number = number + (toMult[i] * getPrexNum(storeMult));}}}/*** 个位数的处理*/number = number + getNumByBig(money);return number.toString();}/*** 辅助类,第二次循环* 此循环一般处理的都是倍数前面的数字,例如十九万,在这里就处理十九** @param storeMult 倍数前面的前缀词* @return*/private static Long getPrexNum(String storeMult) {Long result = 0L;for (int i = 0; i < rmbMult.length; i++) {int index = storeMult.lastIndexOf(rmbMult[i]) == -1 ? storeMult.lastIndexOf(bigRmbMult[i]) : storeMult.lastIndexOf(rmbMult[i]);if (index >= 0) {String storeMult2 = storeMult.substring(0, index);storeMult = storeMult.substring(index + 1);if ((storeMult2 == null || storeMult2.length() <= 0) && toMult[i].intValue() == 10) {result = result + toMult[i];} else {result += getNumByBig(storeMult2) * toMult[i];}}}if (storeMult != null && storeMult.length() > 0) {result = result + getNumByBig(storeMult);}return result;}/*** 辅助类,大写的中文数字 转化为小写的阿拉伯数字** @param big* @return*/private static Long getNumByBig(String big) {Long result = 0L;for (int j = 0; j < rmbNumbers.length; j++) {big = big.replaceAll(rmbNumbers[j], tonumbers[j].toString());big = big.replaceAll(bigNumbers[j], tonumbers[j].toString());}try {result = Long.valueOf(big);} catch (Exception e) {result = 0L;}return result;}
}

Java实现大写金额转小写金额相关推荐

  1. 人民币小写金额转大写金额

    #region 人民币小写金额转大写金额/// <summary>/// 小写金额转大写金额/// </summary>/// <param name="Mon ...

  2. Java小写金额转换大写与金额比对(支持繁体大写金额)

    package com.gerrard.pmc.util;import java.util.HashMap; import java.util.Map;import org.apache.common ...

  3. Java工具包:小写金额转换成大写金额

    源代码如下 package com.jian.stringUtil;/*** 工具类:小写金额转换成大写金额* * @author jianxuanbing* */ @SuppressWarnings ...

  4. java小写金额转大写金额

    1.引入hutool依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all& ...

  5. 《转载+完善》java实现中文大写金额转小写数字

    java实现中文大写金额转小写数字 原文地址:https://blog.csdn.net/Moneywa/article/details/97233159 上面原文博客,在处理 "叁拾壹亿叁 ...

  6. 人民币 小写金额转换为大写金额

    人民币 小写金额转换为大写金额 标签(空格分隔): 人民币 小写金额转换为大写金额 jsp: div class="form-group"> <label class= ...

  7. C#实现小写金额转大写金额

    最近项目上用到小写转大写金额,公司同事还准备写一段代码来实现,后来发现架构上有现成的. 其实在银行.进销存.CRM等系统中经常可能用到 这个跟大家分享一下: 小写金额转大写 /// <summa ...

  8. 使用javabean把小写金额转换成大写金额

    public static void main(String[] args) {moneyConversion mc=new moneyConversion();String money=" ...

  9. 工具篇——MoneyFormatUtil(用于将人民币小写金额转换成大写金额)

    写代码的四点: 1.明确需求.要做什么? 2.分析思路.要怎么做?(1,2,3--) 3.确定步骤.每一个思路要用到哪些语句.方法和对象. 4.代码实现.用具体的语言代码将思路实现出来. 学习新技术的 ...

  10. c语言如何实现人民币转换编程,C语言成序设计实现人民币小写金额与大写金额的转换.docx...

    main() {double r,y; int x, m,n,j,i,k,flag=0; int str1[10]={"零","壹","贰" ...

最新文章

  1. docker 安装 minio
  2. SequoiaDB 系列之五 :源码分析之main函数
  3. 管理大数据存储的十大技巧
  4. 去重 属性_Javascript算法 — 数组去重
  5. linux设备模型之mmc子系统
  6. Selenium Automated test 's Installation environment
  7. poj 3007 stl
  8. Mac环境变量的配置
  9. SSM社区医院卫生所病人患者随访信息管理javaweb网站系统设计与实现
  10. Kaggle注册及绑定手机号
  11. ThoughtWorks思特沃克2018校园招聘之春招家庭作业 - 无人机
  12. 简单文本分割器V1.0发布(包括源码)
  13. 售前工作过程展示4“突发事件预警信息发布平台”
  14. 【leetcode】1175. Prime Arrangements
  15. V831——串口通信
  16. 运维的工作内容是什么?有哪几种分类?
  17. php后端switch,详解PHP中php switch的方法实例_后端开发
  18. 非主流伤感QQ空间日志_享受着自己的那份孤独
  19. MATLAB R2022a 安装教程
  20. android 获取年月日

热门文章

  1. 【考研经验】2018复旦计算机专硕零基础学渣考研经验贴
  2. Wordnet 与 Hownet 比较
  3. Python黑帽子:取代netcat
  4. PPT 字体的玩法(师从于珞珈老师)
  5. Unity开发备忘录000020:Unity2019如何切换成中文界面
  6. dqmh框架 labview_LabVIEW宝典(第2版)简介,目录书摘
  7. 戴尔计算机软件的安装,戴尔笔记本电脑安装软件没反应怎么办
  8. CSS 常用苹方字体
  9. 同义词替换-批量自动同义词替换软件
  10. 软考数据库工程师2020下午题@故障恢复解析