汉字人民币转阿拉伯数字

2024-04-11 21:28

本文主要是介绍汉字人民币转阿拉伯数字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先看结果:

废话不多说 直接上代码:

package com.ht.commons;import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;public class ChineseRMBConverter {private static final Map<Character, BigDecimal> numMap = new HashMap<>();private static final Map<Character, BigDecimal> unitMap = new HashMap<>();static {numMap.put('零', new BigDecimal("0"));numMap.put('壹', new BigDecimal("1"));numMap.put('贰', new BigDecimal("2"));numMap.put('叁', new BigDecimal("3"));numMap.put('肆', new BigDecimal("4"));numMap.put('伍', new BigDecimal("5"));numMap.put('陆', new BigDecimal("6"));numMap.put('柒', new BigDecimal("7"));numMap.put('捌', new BigDecimal("8"));numMap.put('玖', new BigDecimal("9"));// 定义基本单位unitMap.put('拾', new BigDecimal("10"));unitMap.put('佰', new BigDecimal("100"));unitMap.put('仟', new BigDecimal("1000"));// 定义高级单位unitMap.put('万', new BigDecimal("10000"));unitMap.put('亿', new BigDecimal("100000000"));}public static BigDecimal chineseCurrencyToNumber(String currency) {BigDecimal total = BigDecimal.ZERO;BigDecimal tempNum = BigDecimal.ZERO; // 存储当前临时的数字BigDecimal section = BigDecimal.ZERO; // 当前小节的累加值,比如万以下,亿以下等BigDecimal lastUnit = BigDecimal.ONE; // 上一个单位的值,默认为1for (int i = 0; i < currency.length(); i++) {char ch = currency.charAt(i);// 判断当前字符是否为数字if (numMap.containsKey(ch)) {tempNum = numMap.get(ch);} else if (unitMap.containsKey(ch)) {BigDecimal unit = unitMap.get(ch);if (unit.compareTo(new BigDecimal("10000")) < 0) {section = section.add(tempNum.multiply(unit));} else {section = (section.add(tempNum)).multiply(unit);total = total.add(section);section = BigDecimal.ZERO; // 重置小节值}tempNum = BigDecimal.ZERO; // 重置临时数字lastUnit = unit; // 更新最后的单位}}// 确保最后没有单位的数字也被加上total = total.add(section.add(tempNum));return total;}public static void main(String[] args) {String cnNum1 = "壹拾捌万元整";String cnNum2 = "壹亿零壹拾捌万元整";String cnNum3 = "伍亿伍仟零肆万伍仟元整";BigDecimal result1 = chineseCurrencyToNumber(cnNum1);BigDecimal result2 = chineseCurrencyToNumber(cnNum2);BigDecimal result3 = chineseCurrencyToNumber(cnNum3);System.out.println(result1);System.out.println(result2);System.out.println(result3);}
}

这篇关于汉字人民币转阿拉伯数字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/895226

相关文章

mysql阿拉伯数字转换中文数字函数

函数如下 1.中间一部分代码可以提取出来作为公共方法,我这里并没有提取,因为我是在代码中动态添加的 2.样式目前只做了:123转为一百二十三这类的 drop function if EXISTS zz_convert_number_chinese;create FUNCTION zz_convert_number_chinese (numStr VARCHAR(100),zhfs int,

linux下C连接mysql查询表信息汉字乱码问题

对于mysql C_API接口的查询问题,在查询之前需要设置读取数据库的编码格式,即在查询语句之前添加以下语句 mysql_query(connection, "set names utf8") 即在执行数据查询之前,要设置一下编码方式!

佰朔资本:人民币涨超百点,“牛市旗手”拉涨!创业板指、深成指低开高走

9月4日早盘,受昨夜欧美股市和今早日韩股市大跌影响,A股三大指数集体低开。 之后,股市全体跌幅有所收窄,创业板指继续走高翻红,盘初一度跌超1%;深证成指也随后翻红。 离岸人民币兑美元短线走高,日内涨幅扩展至超130点,报7.1074元。 银行间现券全体走强,中端体现亮眼,5年期“24附息国债08”下行1.75bp报1.75%,7年期“24附息国债13”下行1bp报2.005%。 商业连锁板

C++和OpenGL实现3D游戏编程【连载7】——文字和汉字的显示

1、本节实现的内容 上一节我们讨论了纹理在二维平面内不规则图形贴图的相关基础操作,本节我们开始了解游戏里文字以及汉字的显示方法。本节课我们将从基本的ASCII字符显示,拓展到中文字符的显示,最后再讲到纹理字符的显示,并对各种文字显示方法的优缺点和使用场景进行分析,这节课将使用到显示列表等操作,我们还将制作一个显示文字坠落的动画效果。 2、文字显示与普通Windows编程的区别 第一、文字显

iOS汉字转换成拼音

系统提供了将汉字转换为拼音的方法。 1.str为汉字字符串对象,转换为可变的待转字符串string     CFMutableStringRef string = CFStringCreateMutableCopy(nil, 0, CFSTR(str)); 2.将string转换成带有音调的拼音     CFStringTransform(string, nil, kCFStringTr

Android汉字转拼音的完美解决方案

前面的话:做一件事情前一定要先对比多种解决方案在开始写代码,如果一开始就知道某种方法的不合理,就不会浪费那么多时间在解决之前的错误上啦。这篇文章就是因为一开始没有认识到这个问题,付出的代价。以此为戒! 一开始,我使用ASCII码和拼音的映射对汉字和拼音间进行转换,相关类如下: public class CharacterParser {private static int[] pyvalue

如何将十六进制的乱码转换成汉字

在TCP通信时,抓包得到的请求报文,我们需要对其进行分析, 用下面的报文举例: GET  /search?query=%E4%B8%89%E6%98%9F  HTTP/1.1 Host: 192.168.0.118:50500 Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Window

PHP 获取一段内容中每个汉字出现的次数

//获取$str里的前几个汉字function gainChinese($str='',$length=99999999999){$count = 0;//$str_count = strlen($str);//字符个数$result = '';if ($str_count>0) {for($i=0;$i<$str_count;$i++){$str_i = mb_substr($str,

使用python按拼音归类GBK编码表中的所有汉字

按拼音归类GBK编码表中的所有汉字,每个拼音对应的第一个汉字前面用左大括号,每一个拼音的最后一个汉字后面用右大括号,并保存到txt文本中,并统计包含了多少汉字 安装必要的库 确保安装 pypinyin 库用于拼音转换: pip install pypinyin 代码 import collectionsimport pypinyin# 生成 GBK 编码中的所有汉字gbk_char

2024年汉字小达人(上海小学生适用)备考:吃透18道真题,持续更新

2024年第11届汉字小达人比赛的区级自由活动开赛不到两个月了,孩子如何在2024年的汉字小达人活动中取得好成绩呢?根据过去获奖孩子的经验,有两个建议: ①把小学1-5年级的语文课本上的知识点熟悉,重点是字、词、成语、古诗。 ②把历年真题(和背后的知识点)刷熟,举一反三,这对了解汉字小达人比赛,以及巩固语文综合知识很有用。 一、汉字小达人历年真题6大题型18题精选(参考答案和解析见文