小写金额转换为大写金额
jsp:useBean指令
创建名为StringUtil的JavaBean类
package com.cn.zj.bean;public class StringUtil {private String money; //转换之前的数字金额private String submoneyCN[]={"","拾","佰","仟"}; //表示数字位数的数组private String numberCNN[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; //大写数字的数组private String je="零壹贰叁肆伍陆柒捌玖"; //大写的数字(0-9)private String cdw="万仟佰拾亿仟佰拾万仟佰拾元角分"; //金额单位public StringUtil(){} //默认的构造方法public void setMoney(String money){this.money=money;}public String getMoney(){return convert(this.money);}/*** 转换数字金额为大写金额* @return 返回转换后的大写金额*/public String convert(String money){String formatCN=""; int point=money.indexOf("."); //判断字符串是否包含小数点.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(money2.length()<2){ //如果小数点后的部分少于两位,用"0"补齐if(money2.length()==0)money2="00";elsemoney2+="0";}else //如果小数点后的位数大于2位,则只前2位money2=money.substring(point+1,point+3);int len = money1_1.length(); //字符串反转之后,小数点之前的字符位数int pos=len-1;String sigle="";boolean allhavenum=false;boolean havenum=false;boolean mark=false; //设置一个开关变量,若当前数为"0",将该值设为true;不为"0"时设为false/**以下代码为读出小数点左面的部分*/while(pos>=0){sigle=money1_1.substring(pos,pos+1);//截取1位数字,比如数字1234.56,将左侧的字符串反转,值为4321,则截取的值为1/**读取“亿单元”的代码。* 假设读取10024531042.34。* 小数点左面反转后为:24013542001* pos的初始值为10* mark的初始值为false* havenum的初始值为false* */ if(pos>=8&&pos<12){ if(!sigle.equals("0")){ //如果当前值不为"0"if(!mark){ //如果当前值的前一位数不为"0"formatCN+=numberCNN[Integer.parseInt(sigle)]+submoneyCN[pos%4];}else{ //如果当前值不为"0",但该值的前一位数为"0"if(allhavenum){ //如果在当前值之前有不为"0"的数字出现。该条件用来处理用户输入的如:0012.34的数值formatCN+="零";}formatCN+=numberCNN[Integer.parseInt(sigle)]+submoneyCN[pos%4];mark=false;}havenum=true;allhavenum=true; //变量allhavenum表示小数点左面的数中是否有不为"0"的数字;true表示有,false表示无}else{ //如果当前值为"0"mark=true;}if(pos%4==0&&havenum){ //如果当前数字为该单元的最后一位,并且该单元中有不为"0"的数字出现formatCN+="亿";havenum=false;}}/**读取“万单元”的代码*/ if(pos>=4&&pos<8){if(!sigle.equals("0")){if(!mark)formatCN+=numberCNN[Integer.parseInt(sigle)]+submoneyCN[pos%4];else{if(allhavenum){formatCN+="零";}formatCN+=numberCNN[Integer.parseInt(sigle)]+submoneyCN[pos%4];mark=false;}havenum=true;allhavenum=true;}else{mark=true;}if(pos%4==0&&havenum){ formatCN+="万";havenum=false;}}/**读取“个、十、百、千”的代码*/if(pos>=0&&pos<4){if(!sigle.equals("0")){ if(!mark)formatCN+=numberCNN[Integer.parseInt(sigle)]+submoneyCN[pos%4];else{ if(allhavenum){formatCN+="零";}formatCN+=numberCNN[Integer.parseInt(sigle)]+submoneyCN[pos%4];mark=false; }havenum=true;allhavenum=true;}else{mark=true;}}pos--; }/**碰到小数点时的读法*/ if(allhavenum) //如:00.34就不能读为:元3角4分.变量allhavenum表示小数点左面的内容中是否有数字出现formatCN+="元";else //如果小数点左面的部分都为0如:00.34应读为:零元3角4分formatCN="零元";/**以下代码为读出小数点右面的部分 */ if(money2.equals("00"))formatCN+="整";else{/**读出角,如120.34读为:1佰2拾元零3角4分;123.04读为:1佰2拾3元零4分*/if(money2.startsWith("0")||(allhavenum&&money1.endsWith("0"))){ formatCN+="零";}if(!money2.startsWith("0")){formatCN+=numberCNN[Integer.parseInt(money2.substring(0,1))]+"角";}//读出分,如:12.30读1拾2元3角零分formatCN+=numberCNN[Integer.parseInt(money2.substring(1))]+"分";}} else{formatCN="输入的格式不正确!格式:888.00";}return formatCN;}
}
创建index.jsp页面,用于输入数字金额
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="convert.jsp" method="post"><table><tr><td align="center" bgcolor="skyblue">请输入金额:</td></tr><tr height="25"><td bgcolor="yellow">金额:<input type="text" name="money" id="money"><input type="submit" value="转换"></td></tr></table>
</form>
</body>
</html>
创建convert.jsp处理页,用于获取表单的请求信息,并调用Bean类的方法转换金额
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%String money=request.getParameter("money");%><jsp:useBean id="strBean" class="com.cn.zj.bean.StringUtil"></jsp:useBean><<jsp:setProperty property="money" name="strBean" value="<%=money %>"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table><tr><td align="center" bgcolor="skyblue" >转换结果:</td></tr><tr height="25"><td bgcolor="yellow"><jsp:getProperty property="money" name="strBean"/></td></tr>
</table>
</body>
</html>
小写金额转换为大写金额相关推荐
- 人民币 小写金额转换为大写金额
人民币 小写金额转换为大写金额 标签(空格分隔): 人民币 小写金额转换为大写金额 jsp: div class="form-group"> <label class= ...
- 小写金额转换为大写金额JS方法
/** *function: 小写金额转换为大写金额 *return: 转换后的大写金额,类型String */ function money2Cn(str){ var temp = parse ...
- 将小写金额转换为大写金额
/* 运行环境:MS-SQL 2000 将小写金额转换为大写金额 整数部分最大值:9位数 小数部分最大值:2位 必须格式:整数.小数 状态:完成 Update date:2007-10-07 */ / ...
- c语言字符串大写金额,小写金额转换为大写金额(C实现)
零", "壹", "贰", "叁", "肆", "伍", "陆", & ...
- oracle人民币转大写,Oracle 小写金额转换为大写
在开发EBS的合同报表打印的时候需要将小写金额转换为大写. 如下是本人自己写的转换函数. 主要思路:先获取小数点位置,在区分整数与小数点处理,根据位数和数字组合读取金额. 最后再处理特殊显示部分. / ...
- JQuery 数字金额转换为大写金额
web JQuery 数字金额转换为大写金额 网址:https://blog.csdn.net/qq_36894527/article/details/80675658 function Arabia ...
- 人民币小写金额转大写金额
#region 人民币小写金额转大写金额/// <summary>/// 小写金额转大写金额/// </summary>/// <param name="Mon ...
- JS人民币小写金额转换为大写(没毛病)
/** * 人民币小写金额转换为大写 */ export const digitUppercase = (n) => {let fraction = ['角', '分'] let digit = ...
- #小写金额转大写金额
小写金额转大写金额 闲话不多说,直接上代码: function num_to_rmb($num){ $c1 = "零壹贰叁肆伍陆柒捌玖";$c2 = "分角元拾佰仟万拾佰 ...
- C#实现小写金额转大写金额
最近项目上用到小写转大写金额,公司同事还准备写一段代码来实现,后来发现架构上有现成的. 其实在银行.进销存.CRM等系统中经常可能用到 这个跟大家分享一下: 小写金额转大写 /// <summa ...
最新文章
- 打造全球最大规模 Kafka 集群,Uber 的多区域灾备实践
- uiiamgeview 设置圆角
- [TJOI2018]xor
- 霍尔传感器测量转向的方法
- csapp:无符号数可能造成的程序bug
- 运行scrapy保存图片,报错ValueError: Missing scheme in request url: h
- 面试官:为什么 Spring Boot 的 jar 可以直接运行
- layui 数据表格代码
- dtoj#4179. 排行(rank)
- HTML 5 会让iOS和Android开发者转行吗?
- ZK框架笔记3、窗体组件
- 可道云 docker 群晖_【curl】校园网群晖DS120j自动认证
- 即时语音提示软件php,InsTalk即时语音提示校对软件(语音识别和语音合成软件)
- libtorch-gpu推理时占用CPU 100%问题解决
- 美的oracle财务系统,美的集团Oracle ERP 系统财务操作手册(pdf 73页)
- HTTP3 RFC标准正式发布,QUIC会成为传输技术的新一代颠覆者吗?
- Mac 运行windows软件
- 苹果5越狱教程_iOS 13.3.1 checkra1n 手机越狱?不用电脑也行
- 一夜闪崩35%!全球GPU显卡价格开始大幅度跳水
- ∫e^(-x^2)dx怎么求 ??用的是什么方法??
热门文章
- OSI七层网络协议(应用层:http协议、传输层:TCP协议、网络层:IP协议,数据链路层:ARP协议、网络下一跳,物理层:比特流)
- 韩立刚Linux基础入门,Linux入门基础笔记1(韩立刚课程)(示例代码)
- 可靠性测试设备技术含量_可靠性测试中心
- matlab做挖掘机仿真,基于Proe_Adams_Matlab挖掘机的机电液一体化仿真
- php公文流转管理系统,OA办公系统公文流转
- uni-app引入阿里图标【单色】
- thinkpad x250装黑苹果教程_GitHub - siweijianrong/Hackintosh: Hackintosh黑苹果长期维护机型EFI及安装教程整理...
- huaweiPush模块使用说明
- 电路串联和并联图解_如何识别串联电路和并联电路
- 基于Hadoop的数据分析案例-陌陌聊天软件数据分析