金额转大写java实现

java人民币数字转大写汉字(小写转为大写).java 人民币小写金额转为大写金额 阅读详情
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"));
    }
}
人民币转换工具 //转换人民币大写 public class ChineseYuanUtil { /** * 汉语中数字大写 / private static final String[] CN_UPPER_NUMBER = { “零”, “壹”, “贰”, “叁”, “肆”, “伍”, “陆”, “柒”, “捌”, “玖” }; /* * 汉语中货币单位大写,这样的设计类似于占位符 / private static final String[] CN_UPPER_MONETRAY_UNIT = { “分”, “角”, “ 阅读详情

相关推荐

java中金额转大写和日期转大写

private static final String UNIT[] = { “万”, “千”, “佰”, “拾”, “亿”, “千”, “佰”,String[] cnDate = new String[]{“零”,“壹”,“贰”,“叁”,“肆”,“伍”,“陆”,“柒”,“捌”,“玖”};if (UNIT[unitIndex] == “亿” || UNIT[unitIndex] == “万”“拾”, “万”, “千”, “佰”, “拾”, “元”, “角”, “分” };“柒”, “捌”, “玖” };

2401_89690381的博客 735

java将输入的数字金额转换为中文大写金额

数字金额转换为中文大写金额

m0_68055637的博客 8116

固定翼飞行器建模(二)——MATLAB/Simulink建模、配平及线性化

MATLAB/Simulink固定翼建模、配平及线性化。

2302_80148937的博客 1万+

Java金额转大写方法

Java金额转大写

Xiaoxiaofeiplus的博客 2518

关于深度可分离卷积

关于深度学习中的深度可分离卷积

qq_45670407的博客 1796

保姆级教程:在NXPS32144环境下安装EB TRESOS 29.0.0并配置MCAL开发环境

本文提供了一份详细的保姆级教程,指导如何在NXP S32K144环境下安装EB TRESOS 29.0.0并配置MCAL开发环境。内容涵盖从前期资源准备、软件安装步骤、核心的MCAL关联配置,到首次创建AUTOSAR工程并进行模块配置的全流程,旨在帮助汽车电子开发者搭建稳定、可用的底层软件开发地基。

wind6的博客 961

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.

koko创作 5682

GEE去云处理代码段解读(位运算)

GEE去云处理代码段解读,包含位运算符号解读、bitwiseAnd()函数、eq()函数解读

jiekeheiguanglan的博客 2068

Java程序实现了金额数字转大写的功能

该Java程序实现了金额数字转大写的功能。程序分为三个主要步骤:1) 用户输入金额并验证范围(0-9999999);2) 将数字逐位转换为中文大写(零-玖);3) 为每个数字补上对应单位(佰、拾、萬等)。程序使用Scanner读取输入,通过循环处理数字位数,最后拼接金额和单位输出结果。核心方法ZhuanHuanNumber()负责数字到中文的转换。

qq_50372778的博客 622

HyperLynx中层叠设计实例

这两种方式有点区别,前一种方式只是增加层,需要自行修改层的类型,后一种方式可以选定为某一种类型,如果是增加信号层,软件会默认同时增加一层介质层。层叠已经有8层,按照示例的层叠有4个信号层、3个地平面层和1个电源平面层,对照进行层名称(LayerName)、介质类型(Type)及用途(Usage)设置。在这列中,有的是白色,有的是淡蓝色。白色的说明可以修改,如第一行是介质,通常在最外层的介质有两个用途,阻焊层和介质,单击该行会出现一个下拉菜单,选择SolderMask,即为阻焊层。...

小幽余生不加糖 5879

STC单片机 普通 I/O 口中断功能介绍和使用

STC32单片机 普通 I/O 口中断功能介绍和使用

perseverance51博客 3048

JAVA实现大写金额转小写金额

在金融行业中经常需要把大写金额转成小写金额,之前在一次开发中有个类似的需求,翻阅了好多博文,都没找到合适的,故没办法,就花了点时间研究并实现!已有好多年没写过博文了,今天记录哈!

u011407281的专栏 867

华为OD新系统机试真题-文章特征提取

华为OD机试新系统真题 【文章特征提取】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD新系统机试真题【文章特征提取】

qq_45776114的博客 733

Java实现大写金额转小写金额

转自:https://blog.youkuaiyun.com/rmnjava/article/details/24693733 public class MoneyUtil { /** * 中文中简写的汉字金额 经常使用 */ private static String[] rmbNumbers = new String[]{ "一", "二", "三", "四", "五", "六", "七", "八", "九", "两", "廿", "卅", "○"};

hxt的博客 2372

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

前言:输入数字金额参数,运行程序得到其对应的大写中文金额;例如:输入 12.56,输出 12.56 : 壹拾贰元伍角陆分。代码:/*** @Title: ConvertUpMoney* @Description: 将数字金额转换为大写中文金额* @date: 2019年6月18日 下午10:52:27*/public class ConvertUpMoney {// 大写数字private st...

weixin_29948389的博客 910

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

java实现数字金额转大写金额

大写金额

qq_40839030的博客 351

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 { ...

Denglishang的博客 913

Java实战:数字转中文大写金额的完整实现与优化技巧

核心价值:标准化金额表达可降低金融风险关键收获分治思想处理复杂单位转换边界条件需覆盖零值、最大值、小数等场景最佳实践:参考《阿里巴巴Java开发手册》金额处理规范🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!

专注于全栈开发领域 1141

java实现中文大写金额转小写数字

package com.utils; import java.math.BigDecimal; /** * 中文金额转数字工具 * @date 2019/7/19 13:44 */ public class ChineseAmountUtil { private static char[] cnNum = new char[]{'零', '壹', '贰', '叁', '肆',...

王观前的专栏 3611

java 实现double数字转大写金额,最高能支持20位整数

感觉挺简单,找AI写一个,有不少bug,尝试自己写,还挺麻烦的。费了半天劲,记录一下。

想到哪记到哪 416

Java实现金额数字转财务大写

Java实现将金额数字转为财务大写。

以夢爲馬的博客 750

java实现数字金额转大写

java实现数字转金额大写

秃头小兴的博客 664

java实现数字转大写

说明: 将数字金额转大写,如下: public class Test { /** * @param args * add by zxx ,Nov 29, 2008 */ private static final char[] data = new char[] { '零', '壹', '贰', '叁', '肆', ...

常年被追砍的博客 8817

怎样将数字金额转换成中外大写金额(java实现)(转)

方案1: http://topic.youkuaiyun.com/t/20020916/19/1028553.html public   static   String   numtochinese(String   input){           String   s1="零壹贰叁肆伍陆柒捌玖";           String   s4="分角整元拾佰仟万拾佰仟亿拾佰仟";           S...

我的j2ee的专栏 588

Java 数字金额转中文大写金额

Java 程序将数组金额转换成大写中文金额

qq122516902的博客 540
上一篇: tomcat闪退
下一篇: 数据库创建表的时候加注释
庆涛1992
博客等级 码龄9年 37粉丝 19原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值