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中金额转大写和日期转大写
private static final String UNIT[] = { “万”, “千”, “佰”, “拾”, “亿”, “千”, “佰”,String[] cnDate = new String[]{“零”,“壹”,“贰”,“叁”,“肆”,“伍”,“陆”,“柒”,“捌”,“玖”};if (UNIT[unitIndex] == “亿” || UNIT[unitIndex] == “万”“拾”, “万”, “千”, “佰”, “拾”, “元”, “角”, “分” };“柒”, “捌”, “玖” };
java将输入的数字金额转换为中文大写金额
数字金额转换为中文大写金额
固定翼飞行器建模(二)——MATLAB/Simulink建模、配平及线性化
MATLAB/Simulink固定翼建模、配平及线性化。
Java金额转大写方法
Java金额转大写
关于深度可分离卷积
关于深度学习中的深度可分离卷积
保姆级教程:在NXPS32144环境下安装EB TRESOS 29.0.0并配置MCAL开发环境
本文提供了一份详细的保姆级教程,指导如何在NXP S32K144环境下安装EB TRESOS 29.0.0并配置MCAL开发环境。内容涵盖从前期资源准备、软件安装步骤、核心的MCAL关联配置,到首次创建AUTOSAR工程并进行模块配置的全流程,旨在帮助汽车电子开发者搭建稳定、可用的底层软件开发地基。
Java将数字金额转换为中文大写
import java.math.BigDecimal; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 2022/5/5 * * @author lf */ public class MoneyToChineseUtils { /** * 不考虑分隔符的正确性 */ private static final Pattern AMOUNT_PATTERN = Patte.
GEE去云处理代码段解读(位运算)
GEE去云处理代码段解读,包含位运算符号解读、bitwiseAnd()函数、eq()函数解读
Java程序实现了金额数字转大写的功能
该Java程序实现了金额数字转大写的功能。程序分为三个主要步骤:1) 用户输入金额并验证范围(0-9999999);2) 将数字逐位转换为中文大写(零-玖);3) 为每个数字补上对应单位(佰、拾、萬等)。程序使用Scanner读取输入,通过循环处理数字位数,最后拼接金额和单位输出结果。核心方法ZhuanHuanNumber()负责数字到中文的转换。
HyperLynx中层叠设计实例
这两种方式有点区别,前一种方式只是增加层,需要自行修改层的类型,后一种方式可以选定为某一种类型,如果是增加信号层,软件会默认同时增加一层介质层。层叠已经有8层,按照示例的层叠有4个信号层、3个地平面层和1个电源平面层,对照进行层名称(LayerName)、介质类型(Type)及用途(Usage)设置。在这列中,有的是白色,有的是淡蓝色。白色的说明可以修改,如第一行是介质,通常在最外层的介质有两个用途,阻焊层和介质,单击该行会出现一个下拉菜单,选择SolderMask,即为阻焊层。...
STC单片机 普通 I/O 口中断功能介绍和使用
STC32单片机 普通 I/O 口中断功能介绍和使用
JAVA实现大写金额转小写金额
在金融行业中经常需要把大写金额转成小写金额,之前在一次开发中有个类似的需求,翻阅了好多博文,都没找到合适的,故没办法,就花了点时间研究并实现!已有好多年没写过博文了,今天记录哈!
华为OD新系统机试真题-文章特征提取
华为OD机试新系统真题 【文章特征提取】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD新系统机试真题【文章特征提取】
Java实现大写金额转小写金额
转自:https://blog.youkuaiyun.com/rmnjava/article/details/24693733 public class MoneyUtil { /** * 中文中简写的汉字金额 经常使用 */ private static String[] rmbNumbers = new String[]{ "一", "二", "三", "四", "五", "六", "七", "八", "九", "两", "廿", "卅", "○"};
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
java 金额转中文_Java实现 将数字金额转为大写中文金额
前言:输入数字金额参数,运行程序得到其对应的大写中文金额;例如:输入 12.56,输出 12.56 : 壹拾贰元伍角陆分。代码:/*** @Title: ConvertUpMoney* @Description: 将数字金额转换为大写中文金额* @date: 2019年6月18日 下午10:52:27*/public class ConvertUpMoney {// 大写数字private st...
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
java实现数字金额转大写金额
大写金额
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
Java笔记——Java 实现金额小写转大写
Java 实现金额小写转大写 话不多说,放码出来。。。 package oracleTestProject; import java.text.DecimalFormat; public class MyTest2020040501 { public static void main(String[] args) throws Exception { try { ...
Java实战:数字转中文大写金额的完整实现与优化技巧
核心价值:标准化金额表达可降低金融风险关键收获分治思想处理复杂单位转换边界条件需覆盖零值、最大值、小数等场景最佳实践:参考《阿里巴巴Java开发手册》金额处理规范🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!
java实现中文大写金额转小写数字
package com.utils; import java.math.BigDecimal; /** * 中文金额转数字工具 * @date 2019/7/19 13:44 */ public class ChineseAmountUtil { private static char[] cnNum = new char[]{'零', '壹', '贰', '叁', '肆',...
java 实现double数字转大写金额,最高能支持20位整数
感觉挺简单,找AI写一个,有不少bug,尝试自己写,还挺麻烦的。费了半天劲,记录一下。
Java实现金额数字转财务大写
Java实现将金额数字转为财务大写。
java实现数字金额转大写
java实现数字转金额大写
java实现数字转大写
说明: 将数字金额转大写,如下: public class Test { /** * @param args * add by zxx ,Nov 29, 2008 */ private static final char[] data = new char[] { '零', '壹', '贰', '叁', '肆', ...
怎样将数字金额转换成中外大写金额(java实现)(转)
方案1: http://topic.youkuaiyun.com/t/20020916/19/1028553.html public static String numtochinese(String input){ String s1="零壹贰叁肆伍陆柒捌玖"; String s4="分角整元拾佰仟万拾佰仟亿拾佰仟"; S...
Java 数字金额转中文大写金额
Java 程序将数组金额转换成大写中文金额
735



被折叠的 条评论
为什么被折叠?



