人民币大写转换 - Java实现

网上看到不少转换大小写的,代码有点点乱不方便阅读。
随手写了个,做交流学习使用。
代码如下:

   import java.util.Scanner;/*** @Description: -- 金额转换,阿拉伯数字的金额转换成中国传统的形式* @Package: untitled3* @ClassName:* @Author: showfinejiang* @CreateDate: 2021/7/5 16:01* @Version: 1.0**/
public class MoneyConvert {public static void main(String[] args)  {Scanner scanner = new Scanner(System.in);System.out.println(function1(scanner.next()));}public static String function1(String money) {final String regInteger = "([1-9][0-9]*)|([1-9][0-9]*\\.[0]*)";final String regDouble = "([1-9][0-9]*\\.[0-9]*)";final String regFloat = "([0-9]\\.[0-9]*)";if (money == null || !money.matches(regInteger + "|" + regDouble + "|" + regFloat))return "输入格式不正确!";final String point = "\\.";final String[] strPointUnit = {"角", "分"};final String[] strNum = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};final String[] strUnit = {"圆", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟"};boolean isInteger = money.matches(regInteger);//将整数部分和小数分开处理String integerMoney = money.split(point)[0];String floatMoney;StringBuilder result = new StringBuilder();//列出相应的大写加单位for (int i = 0; i < integerMoney.length(); i++) {result.append(strNum[Character.digit(integerMoney.charAt(i), 10)]);result.append(strUnit[integerMoney.length() - 1 - i]);}//加上小数尾if (!isInteger) {floatMoney = money.split(point)[1];for (int i = 0; i < floatMoney.length(); i++) {result.append(strNum[Character.digit(floatMoney.charAt(i), 10)]);result.append(strPointUnit[floatMoney.length() - 1 - i]);}}//省略零 并返回return dispose(result.toString());}private static String dispose(String result) {result = result.replaceAll("零仟零佰零拾|零仟零佰|零佰零拾|零仟|零佰|零拾", "零");result = result.replaceAll("零+", "零").replace("零亿", "亿");result = result.matches("^.*亿零万[^零]仟.*$") ? result.replace("零万", "零") : result.replace("零万", "万");result = result.replace("亿万", "亿");//处理小数result = result.replace("零角", "零").replace("零分", "");result = result.replaceAll("(^[零圆]*)(.+$)", "$2");result = result.replaceAll("(^.*)([零]+圆)(.+$)", "$1圆零$3");//处理整数单位result = result.replaceAll("圆零角零分|圆零角$|圆$|^零$|圆零$|零圆$", "圆整");result = result.replaceAll("^圆整$", "零圆整");result = result.replaceAll("零+", "零");return result;}
}

其中dispose部分代码摘抄自

https://blog.csdn.net/huitoukest/article/details/78217532

还有部分越界异常未做处理

人民币大写转换-Java 8相关推荐

  1. java中人民币的符号怎么打_Java学习笔记---字符串操作(人民币大写转换的实现)...

    向开始学习语言的的同学们推荐下,如果你想学习语言的某个特性,比方说数据库编程,或者网络编程,最好找一个实用的例子,然后不懂的去翻书,去查资料,这样目的性就很强了,个人感觉比对着语法书敲上面的例子效率要 ...

  2. java方法转换大写日期及人民币大写转换方式 .txt

    java方法转换大写日期及人民币大写转换方式 2012-03-02 14:38:03| 分类: java |字号 订阅 /** * 阿拉伯数字与中文数字(大小写)之间的转换 * */ import j ...

  3. java将日期格式转大写_java方法转换大写日期及人民币大写转换方式 .txt

    java方法转换大写日期及人民币大写转换方式 2012-03-02 14:38:03| 分类: java |字号 订阅 /** * 阿拉伯数字与中文数字(大小写)之间的转换 * */ import j ...

  4. python实现人民币大写转换

    问题描述: 银行在打印票据的时候,常常需要将阿拉伯数字表示的人民币金额转换为大写表示,现在请你来完成这样一个程序. 在中文大写方式中,0到10以及100.1000.10000被依次表示为: 零 壹 贰 ...

  5. 人民币数字大写转换 java实现 [附源码]

    动机 业务系统开发的报表中经常需要将人民币数值转换为大写,所以江苏南大先腾java研发框架中写了一个通用的大写转换函数.由于报表的数值一般比较大所以在java开发中不建议使用float或者int类型, ...

  6. 人民币大小写转换 java 实现

    参考:http://blog.csdn.net/guaishushu1ss/article/details/76757405 对匹配的金额大小,转换规则做了部分修改 工具类: public class ...

  7. java人民币大小写转换_人民币大小写转换 java 实现

    参考:http://blog.csdn.net/guaishushu1ss/article/details/76757405 对匹配的金额大小,转换规则做了部分修改 工具类: public class ...

  8. python 作业2:人民币大写转换问题

    题目描述: 银行在打印票据的时候,常常需要将阿拉伯数字表示的人民币金额转换为大写表示,现在请你来完成这样一个程序. 在中文大写方式中,0到10以及100.1000.10000被依次表示为: 零 壹 贰 ...

  9. 程序技巧:人民币大写转换,身份证识别等 ,经典收集!

    问题:    商业领域,开发票,支票等金钱相关项目通常要求转换成大写,诸如"壹拾圆陆角玖分".编程过程中,一般的钱币都是double型. 当前看到的方法:之所以写这个方法,因为看到 ...

  10. 首字母大写转换 java,Java InitialsTransformation(字符串首字母大小写转换)

    版权声明:本文为原创博文,最终解释权归一个集 帅气 与 智慧 和 手速 于一身的男人-灭世奶神-所有!- - - - - - - - - - - - -转载:请附上--源作者 / 源博文--相关链接信 ...

最新文章

  1. 凭借识别人的情绪,他们做到了2000多万用户、1000多万订单
  2. mongoose 验证
  3. 查看安装软件/Select-object/Where-Object xxx -like
  4. 【渝粤题库】广东开放大学 劳动关系理论与实务 形成性考核
  5. Java Web学习总结(31)——全站HTTPS化SSL免费证书使用
  6. Docker(一):基础入门篇
  7. thinkphp3 页面跳转外部链接_一文看懂小程序跳转的规则和注意事项
  8. SAP MM模块之批次管理
  9. python手工打码_Python学习--打码平台
  10. 姿态识别+校准|视觉技术新突破
  11. jQuery概述(查阅菜鸟教程随笔)
  12. 挂耳式耳机品牌排行榜,看看谁被推荐上榜
  13. 银联支付页面怎么调起 php,php银联网页支付实现方法
  14. LSM-tree基本原理及应用
  15. L3-012 水果忍者
  16. 会声会影2022视频编辑软件专业版
  17. 银行客户信用风险评估项目
  18. 核反应堆Fortran计算软件Dragon/Donjon
  19. DRL:强化学习-Q-Learning算法
  20. AndroidiOSApp架构总结

热门文章

  1. App Extension应用扩展
  2. 为什么家里要有公网IP
  3. LaTeX中文伪代码
  4. winrar解压器_最好的解压软件,没有之一
  5. java 文字串叠字检查_Java 正则表达式详细实例解析
  6. python实现网页截图功能——学习篇(01)
  7. 考勤打卡不如自我约束
  8. 读书笔记 大前研一《专业主义》
  9. 郭天祥的10天学会51单片机_第五节
  10. php 打印去掉页眉页脚,window.print打印 去掉页眉页脚及打印链接