金额数字转换(小写转大写)

2024-04-04 00:58

本文主要是介绍金额数字转换(小写转大写),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

人民币金额,小写转大写。代码如下:

public String convert(String money) {String[] numberCNN = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};String[] subMonetCN = {"","拾","佰","仟"};String formatCN = "";int point = money.indexOf(".");if(point!=-1) {String money1 = money.substring(0, point);		//小数点前的整数部分String money1_1 = (new StringBuffer(money1).reverse()).toString(); //反转String money2 = money.substring(point+1);		//小数点后的小数部分//判断小数点前后是不是数字if(!StringUtils.isNumeric(money1)||!StringUtils.isNumeric(money2)) {formatCN = "输入内容必须是数字,请重新输入";System.out.println(formatCN);return formatCN;}if(money2.length()<2) {if(money2.length() == 0) {money2 = "00";}else {money2 = money2  + "0";}}else {//如果小数点后面的位数大于两位,则只取前两位money2 = money.substring(point+1, point+3);}int len = money1_1.length();   //字符串反转之后,小数点之前的位数int pos = len - 1;String single = "";boolean allHaveNum = false;boolean haveNum = false;boolean mark = false;//输入的数字不能超过15位if(len>=16) {formatCN = "您输入的位数过大(整数部分不能超过15位),请重新输入";return formatCN;}while(pos>=0) {single = money1_1.substring(pos,pos+1);//if(pos>=8&&pos<12) {if(pos>=8) {if(!"0".equals(single)) {if(!mark) {formatCN = formatCN + numberCNN[Integer.parseInt(single)] + subMonetCN[pos%4];}else {if(allHaveNum) {formatCN = formatCN + "零";}formatCN = formatCN + numberCNN[Integer.parseInt(single)] + subMonetCN[pos%4];mark = false;}haveNum = true;allHaveNum = true;}else {mark = true;}if(pos%4==0&&pos!=8&&haveNum) {formatCN = formatCN + "万";}if(pos==8&&haveNum) {formatCN = formatCN + "亿";haveNum = false;}}if(pos>=4&&pos<8) {if(!"0".equals(single)) {if(!mark) {formatCN = formatCN + numberCNN[Integer.parseInt(single)] + subMonetCN[pos%4];}else {if(allHaveNum) {formatCN = formatCN + "零";}formatCN = formatCN + numberCNN[Integer.parseInt(single)] + subMonetCN[pos%4];	mark = false;}haveNum = true;allHaveNum = true;}else {mark = true;}if(pos%4==0&&haveNum) {formatCN = formatCN + "万";haveNum = false;}}if(pos>=0&&pos<4) {if(!"0".equals(single)) {if(!mark) {formatCN = formatCN + numberCNN[Integer.parseInt(single)] + subMonetCN[pos%4];	}else {if(allHaveNum) {formatCN = formatCN + "零";}formatCN = formatCN + numberCNN[Integer.parseInt(single)] + subMonetCN[pos%4];	mark = false;}haveNum = true;allHaveNum = true;}else {mark = true;}}pos--;}if(allHaveNum) {formatCN = formatCN + "元";}else {formatCN = formatCN + "零元";}if("00".equals(money2)) {formatCN = formatCN + "整";}else {if(money2.startsWith("0")||(allHaveNum&&money1.startsWith("0"))) {formatCN = formatCN + "零";}if(!money2.startsWith("0")) {formatCN = formatCN + numberCNN[Integer.parseInt(money2.substring(0,1))] + "角";}formatCN = formatCN + numberCNN[Integer.parseInt(money2.substring(1))] + "分";}}else {formatCN = "您输入的格式不正确,格式为:888.00";}return formatCN;
}

这篇关于金额数字转换(小写转大写)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

基于C#实现将图片转换为PDF文档

《基于C#实现将图片转换为PDF文档》将图片(JPG、PNG)转换为PDF文件可以帮助我们更好地保存和分享图片,所以本文将介绍如何使用C#将JPG/PNG图片转换为PDF文档,需要的可以参考下... 目录介绍C# 将单张图片转换为PDF文档C# 将多张图片转换到一个PDF文档介绍将图片(JPG、PNG)转

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

AIGC6: 走进腾讯数字盛会

图中是一个程序员,去参加一个技术盛会。AI大潮下,五颜六色,各种不确定。 背景 AI对各行各业的冲击越来越大,身处职场的我也能清晰的感受到。 我所在的行业为全球客服外包行业。 业务模式为: 为国际跨境公司提供不同地区不同语言的客服外包解决方案,除了人力,还有软件系统。 软件系统主要是提供了客服跟客人的渠道沟通和工单管理,内部管理跟甲方的合同对接,绩效评估,BI数据透视。 客服跟客人

数据流与Bitmap之间相互转换

把获得的数据流转换成一副图片(Bitmap) 其原理就是把获得倒的数据流序列化到内存中,然后经过加工,在把数据从内存中反序列化出来就行了。 难点就是在如何实现加工。因为Bitmap有一个专有的格式,我们常称这个格式为数据头。加工的过程就是要把这个数据头与我们之前获得的数据流合并起来。(也就是要把这个头加入到我们之前获得的数据流的前面)      那么这个头是

NC 把数字翻译成字符串

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 有一种将字母编码成数字的方式:‘a’->1, ‘b->2’, … , ‘z->26’。 现在给一串数字,返回有多少种可能的译码结果 import java.u