package com.phyl.util;
import java.util.HashMap;
/*** 数字金额转换成中文大写金额* @author ftpeng**/
public class ChineseConvert {/*** 人民币大写单位制*/private static HashMap<Integer, String> dws;/*** 数字对应的中文*/private static String[] jes;// 初始化执行static{dws = new HashMap<Integer, String>();dws.put(-2, "分");dws.put(-1, "角");dws.put(0, "元");dws.put(1, "拾");dws.put(2, "佰");dws.put(3, "仟");dws.put(4, "万");//dws.put(5, "拾");dws.put(6, "佰");dws.put(7, "仟");dws.put(8, "亿");//dws.put(9, "拾");dws.put(10, "佰");dws.put(11, "仟");dws.put(12, "万");jes = new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};}/*** 数字转换人民币大写* @param number 数字 不支持科学数字* @return*/public static String chinese(String number){StringBuffer su = new StringBuffer();// 整数部分number = delInvalidZero(number);String str = null;// 小数部分String decimal = null;if(number.contains(".")){// 截取整数位str = number.split("\\.")[0];decimal = number.split("\\.")[1];}else{str = number;}// 判断是否存在整数位if(str.length()>0){for (int i = 0; i < str.length() ; i++) {String context = str.substring(i, i+1);int pow = str.length()-i-1;Integer val = Integer.parseInt(context.toString());// 获取中文单位String sign = dws.get(pow);// 获取中文数字String name = jes[Integer.parseInt(context)];if(val==0){if(pow%4!=0){// 删除单位sign = "";}if(i < str.length()-1){Integer val1 = Integer.parseInt(str.substring(i+1, i+2));if(val==0&&val==val1){name = "";}}else if(i == str.length()-1){name = "";}}su.append(name+sign);}}// 判断是否存在小数位if(decimal!=null){str = decimal.substring(0,1);if(!"0".equals(str)){su.append(jes[Integer.parseInt(str)]+dws.get(-1));}if(decimal.length()==2){str = decimal.substring(1,2);if(!"0".equals(str)){su.append(jes[Integer.parseInt(str)]+dws.get(-2));}}}else{su.append("整");}return su.toString();}/*** 清理数字特殊字符* @param str* @return*/private static String delInvalidZero(String str){if("0".equals(str.substring(0, 1))){return delInvalidZero(str.substring(1, str.length()));}else if(str.contains(",")){return delInvalidZero(str.replaceAll(",", ""));}else{return str;}}public static void main(String[] args) {System.out.println(ChineseConvert.chinese("123456"));}
}

金额转大写java实现相关推荐

  1. java数字转大写 其他报异常_【踩坑系列】使用long类型处理金额,科学计数法导致金额转大写异常...

    python科学计算数据应用(第2版) 156.4元 (需用券) 去购买 > 1. 踩坑经历 上周,一个用户反馈他创建的某个销售单无法打开,但其余销售单都可以正常打开,当时查看了生产环境的ERR ...

  2. 财务转换工具 - 人民币金额转大写工具类 java 版本

    文章目录 财务转换工具 - 人民币金额转大写工具类 java 版本 1.示例 2.代码 财务转换工具 - 人民币金额转大写工具类 java 版本 1.示例 public static void mai ...

  3. Java将数字金额转为大写

    首先将数字金额定义为字符串类型,然后再转为int或double型:判断是否是负数或有小数点,再进行下一步处理. 代码如下: package com.study;import com.sun.deplo ...

  4. 金额转大写及日期转大写(java)

     背景:银行等相关票据有着严格的规范要求:下面是具体的说明            银行.单位和个人填写的各种票据和结算凭证是办理支付结算和现金收付的重要依据,直接关系到支付结算的准确.及时和安全.票据 ...

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

    最困难的事情就是认识自己! 个人博客,欢迎访问! 前言: 输入数字金额参数,运行程序得到其对应的大写中文金额:例如:输入 12.56,输出 12.56 : 壹拾贰元伍角陆分:重点来了:本人亲测有效. ...

  6. java数字金额大写金额_Java实现 “ 将数字金额转为大写中文金额 ”

    前言: 输入数字金额参数,运行程序得到其对应的大写中文金额:例如:输入 12.56,输出 12.56 : 壹拾贰元伍角陆分:重点来了:本人亲测有效. 奉上代码: /** * @Title: Conve ...

  7. 【Java】将数字金额转换为大写中文金额

    package com.ruoyi.test;import org.apache.commons.lang3.StringUtils;/*** @Title: ConvertUpMoney* @Des ...

  8. java 金额转中文_Java实现 将数字金额转为大写中文金额

    前言: 输入数字金额参数,运行程序得到其对应的大写中文金额:例如:输入 12.56,输出 12.56 : 壹拾贰元伍角陆分. 代码: /** * @Title: ConvertUpMoney * @D ...

  9. 将数字转换成中文金额的大写形式

    package com.unteck.fms.web.businessdata.controller; import org.springframework.beans.factory.annotat ...

  10. php金额类,PHP类-人民币金额转大写

    这篇文章介绍的内容是关于PHP类-人民币金额转大写,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下<?php //人民币金额转大写程序PHP版 class Ext_Num2Cny{ ...

最新文章

  1. src is not broadcastable to dst, but they have the same number of elements
  2. [翻译]你或许还未听说过的一些ASP.NET 2.0要诀
  3. linux启用网卡vlan,LINUX (UBUNTU) 双网卡多VLAN的Server 配置
  4. python实战经典例子_Python入门经典实例
  5. java se拖动插件_JQuery之拖拽插件
  6. Linux实操篇②(远程连接Linux;Xshell 6 和 Xftp 6 工具的安装;Xshell 6 和 Xftp 6 工具的配置和使用;)
  7. TMS320F2837x + Spartan6/国产FPGA低成本高实时注塑机运动控制器软硬件设计方案
  8. 《谁动了我的奶酪》感悟
  9. SharePoint传出电子邮件配置
  10. 山东理工ACM 1115 C语言实验——交换两个整数的值(顺序结构)两种方法
  11. 项目进度管理服务器,工程项目进度管理软件Asta Powerproject——成功项目背后的力量...
  12. 机器视觉(3)-- 机器视觉与AGV小车
  13. 无监督学习 聚类分析②
  14. 6.4_[Java 数组]-详解 break/continue 跳转语句
  15. java角谷_Java:利用递归方法实现角谷定理
  16. JavaScript中一个等号、二个等号、 三个等号 的区别
  17. CSDN博客积分规则和获取积分方法
  18. openGL之API学习(一二九)specular gloss diffuse
  19. QQ空间迁移_【群晖NAS+FRP_并获取用户真实IP 支持群辉6.0和群辉7.0】
  20. 关于推荐系统的详细介绍

热门文章

  1. php定时发送qq消息,无需任何工具发送定时QQ消息
  2. DataV可视化大屏-基本操作说明
  3. smtp是什么邮件的协议
  4. JeecgBoot全套开发环境搭建
  5. linux+pe+网络扫描,Ubuntu 18.04及其他版本Linux 下 Nmap 网络扫描工具的安装与使用
  6. 勒索病毒来袭!及时备份数据吧!
  7. python转pyd
  8. java调用python库pyd_Java怎么调用pyd文件
  9. android edittext 字母数字键盘,android EditText默认数字键盘,能输入字母,数字和中文...
  10. Excel/WPS做数据透视表,即对变量做交叉汇总(列联表)