第一种方式

package com.sinux.qunz.utils;

import java.io.Serializable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Money implements Serializable {
public static boolean isMoneyDX(String str){
Pattern pattern=Pattern.compile("[壹,贰,叁,肆,伍,陆,柒,捌,玖,拾,佰,仟][壹,贰,叁,肆,伍,陆,柒,捌,玖,拾,佰,仟,元,角,万,分,百,整,零]+[壹,贰,叁,肆,伍,陆,柒,捌,玖,拾,佰,仟,元,角,万,分,百,整,零]");
Matcher match=pattern.matcher(str);
if(match.matches()==true ){
return true;
}else{
return false;
}
}
public static boolean isMoney(String str){
Pattern pattern=Pattern.compile("^(([1-9]{1}\d*)|([0]{1}))(\.(\d){0,2})?$"); // 判断小数点后2位的数字的正则表达式
Pattern pattern1=Pattern.compile("[壹,贰,叁,肆,伍,陆,柒,捌,玖,拾,佰,仟][壹,贰,叁,肆,伍,陆,柒,捌,玖,拾,佰,仟,元,角,万,分,百,整,零]+[壹,贰,叁,肆,伍,陆,柒,捌,玖,拾,佰,仟,元,角,万,分,百,整,零]");
Matcher match=pattern.matcher(str);
Matcher match1=pattern1.matcher(str);
if(match.matches()==true || match1.matches()==true){
return true;
}else{
return false;
}
}
/**
* 人民币大写转换小写
*
* @param money
/
public static double convertUpperToNum(String money) {
double result = 01;
/
*
* 先分割出各级别(亿、万、个)
*/
String yi = money.indexOf(“亿”) != -1 ? money.substring(0, money
.indexOf(“亿”) + 1) : “”; // 亿
if (!"".equals(yi)) {
result = convertUpperToNum(yi.substring(0, yi.length() - 1)) * 100000000; // 计算亿前面的值
}
money = money.indexOf(“亿”) != -1 ? money
.substring(money.indexOf(“亿”) + 1) : money;
String wan = money.indexOf(“万”) != -1 ? money.substring(0, money
.indexOf(“万”)+1 ) : “”; // 万
money = money.indexOf(“万”) != -1 ? money
.substring(money.indexOf(“万”) + 1) : money; // 个
// System.out.println(“亿:” + yi + ” 万:” + wan + ” 个:” + money);
double yiNum = !"".equals(yi) ? calcNum(yi, 3) : 0;
double wanNum = !"".equals(wan) ? calcNum(wan, 2) : 0;
double geNum = !"".equals(money) ? calcNum(money, 1) : 0;
result = yiNum + wanNum + geNum;
return result;
}

/*** 计算各级别的数值** @param money* @return*/
public static double calcNum(String money, int index) {double num = 0;if (index != 1) {money = money.substring(0, money.length() - 1);num = upperToNum(money.charAt(money.length() - 1));}/*** 分割千、百、十、个*/String qian = money.indexOf("仟") != -1 ? money.substring(0, money.indexOf("仟")) : ""; // 仟if (!"".equals(qian)) {num += upperToNum(qian.charAt(qian.length() - 1)) * 1000;}money = money.indexOf("仟") != -1 ? money.substring(money.indexOf("仟") + 1) : money;String bai = money.indexOf("佰") != -1 ? money.substring(0, money.indexOf("佰")) : ""; // 佰if (!"".equals(bai)) {num += upperToNum(bai.charAt(bai.length() - 1)) * 100;}money = money.indexOf("佰") != -1 ? money.substring(money.indexOf("佰") + 1) : money;String shi = money.indexOf("拾") != -1 ? money.substring(0, money.indexOf("拾")) : ""; // 拾if (!"".equals(shi)) {num += upperToNum(shi.charAt(shi.length() - 1)) * 10;}money = money.indexOf("拾") != -1 ? money.substring(money.indexOf("拾") + 1) : money;String ge = money.indexOf("元") != -1 ? money.substring(0, money.indexOf("元")) : ""; //if (!"".equals(ge)) {num += upperToNum(ge.charAt(ge.length() - 1)) ;}money = money.indexOf("元") != -1 ? money.substring(money.indexOf("元") + 1) : money;String jiao = money.indexOf("角") != -1 ? money.substring(0, money.indexOf("角")) : ""; //if (!"".equals(jiao)) {num += upperToNum(jiao.charAt(jiao.length() - 1))*0.1 ;}money = money.indexOf("角") != -1 ? money.substring(money.indexOf("角") + 1) : money;String fen = money.indexOf("分") != -1 ? money.substring(0, money.indexOf("分")) : ""; //if (!"".equals(fen)) {num += upperToNum(fen.charAt(fen.length() - 1))*0.01 ;}switch (index) {case 1: // 个break;case 2: // 万num = num * 10000;break;case 3: // 亿num = num * 100000000;break;}return num;
}/*** 小写转大写** @param value* @return*/
public static double upperToNum(char value) {double num = 0;switch (value) {case '零':break;case '壹':num = 1;break;case '贰':num = 2;break;case '叁':num = 3;break;case '肆':num = 4;break;case '伍':num = 5;break;case '陆':num = 6;break;case '柒':num = 7;break;case '捌':num = 8;break;case '玖':num = 9;break;}return num;
}

}
第二种方式
package com.sinux.qunzhi.modules.task.controller;

import java.util.HashMap;
import java.util.Map;

public class test10 {
public static void main(String[] args) {
System.out.println(hanpi(“叁拾圆”));

    System.err.println(upperToNum('捌'));
}
/*** 小写转大写** @param value* @return*/
public static double upperToNum(char value) {double num = 0;switch (value) {case '零':break;case '壹':num = 1;break;case '贰':num = 2;break;case '叁':num = 3;break;case '肆':num = 4;break;case '伍':num = 5;break;case '陆':num = 6;break;case '柒':num = 7;break;case '捌':num = 8;break;case '玖':num = 9;break;}return num;
}
/*** 小写转大写** @param value* @return*/
public static double u(char value) {double num = 0;switch (value) {case '分':num = 0.01;break;case '仟':num = 1000;break;case '佰':num = 100;break;case '拾':num = 10;break;case '圆':num = 1;break;case '角':num = 0.1;break;case '亿':num = 100000000;break;case '万':num = 10000;break;}return num;
}public static double hanpi(String money) {double sum=0;for(int i=1;i<money.length();i+=2){if('零'==money.charAt(i-1)){i-=1;continue;}sum +=(upperToNum(money.charAt(i-1)))*(u(money.charAt(i)));}return sum;
}

}

人民币大写转小写,及人民币格式判断相关推荐

  1. 人民币大写转换小写数字金额 ts/es6

    /* 这里的金额 只到千万 不含亿元转换 */ /** 如果有亿元 算法和以下一样 加几步就是 */ /**想法: 把金额拆分三个数组分别计算 1. 以万结束为一个2. 以元结束为一个3. 小数 角分 ...

  2. java将日期格式转大写_java方法转换大写日期及人民币大写转换方式 .txt

    java方法转换大写日期及人民币大写转换方式 2012-03-02 14:38:03| 分类: java |字号 订阅 /** * 阿拉伯数字与中文数字(大小写)之间的转换 * */ import j ...

  3. java人民币大小写转换_Java 实现人民币小写转大写[转载http://sunjun.blogchina.com/]

    Java实现人民币小写转大写 import java.io.*; import java.util.*; import java.lang.*; public class money { public ...

  4. php人民币大写函数,将人民币数字转化为人民币大写格式的PHP函数

    这个函数用来把人民币数字转换为人民币大写格式,这个函数感觉还可以.要的拿去吧. function toCNFormat($data) { $data = strpos($data, ".&q ...

  5. 数字转换成人民币大写格式(带界面)

    今天看了算法的公开课,有一个把数字转换成人民币大写的算法. 后面就想着自己写一个界面的,好几天没有写一个完整的程序的. 当然有一些BUG,没有时间优化,后面在慢慢优化. 自己的名言:每天努力一点儿,总 ...

  6. js 数字转人民币大写

    目前网上有许多的数字转人民币大写功能,但是在某些数字上就回出现错误, 比如501356,这个转换之后,有的会转换成 "伍拾万零壹仟叁佰伍拾陆" ,单位万和千紧密相连,中间是不需要 ...

  7. Java实现人民币大写+GUI界面

    项目资源下载链接Java实现人民币大写+GUI界面 文章标题 1.提要 2.算法 3. 代码 (1)界面:windowbuilder插件的使用 (2)实现人民币转换的类 Convert.java (3 ...

  8. C#数字转人民币大写

    C#方法 废话不多说,直接上代码: /// <summary> /// 数字转换为大写人民币表示 /// </summary> /// <param name=" ...

  9. java方法转换大写日期及人民币大写转换方式 .txt

    java方法转换大写日期及人民币大写转换方式 2012-03-02 14:38:03| 分类: java |字号 订阅 /** * 阿拉伯数字与中文数字(大小写)之间的转换 * */ import j ...

最新文章

  1. ArrayBlockingQueue原理分析
  2. Iphone代码创建视图
  3. 单词接龙(信息学奥赛一本通-T1220)
  4. java中的集合_你真的了解Java中的集合类么?
  5. springboot templates读取不到_精通 Spring Boot 系列 04
  6. android office转pdf插件,Office自带Word转PDF插件 让office的另存为可存储为PDF文件
  7. 修改t3报表服务器,用友T3软件财务报表修改之后,下次打开又需要重新打开,保存到电脑里比较麻烦,如何将修改好的报表保存到软件里面-用友T3...
  8. 国开大学计算机原理边学边练,国家开放大学计算机组成原理
  9. java 抽样算法_java生成抽样随机数的多种算法
  10. 回顾一年的工作历程_回顾历程、总结经验、展望未来
  11. VALUES LESS THAN value must be strictly increasing for each partition,MySQL分区需要注意的坑
  12. Golang学习(十四)数组
  13. Firefox浏览器基本使用
  14. 关于IOPS指标对性能的影响
  15. 河南2021年高考成绩位次查询,河南高考成绩位次排名查询2020,河南高考一分一段表...
  16. MoveIt-tutorial笔记
  17. HTML界面多语言切换
  18. JS数字存储-指数位-尾数位-最大安全数字
  19. python ssl连接 证书验证失败_python foursquare – SSL3证书验证失败
  20. 分享 使用普通笔记本电脑,DIY制作合成混音MTV视频,并上传分享的步骤

热门文章

  1. store(商城项目)Springboot+springmvc+ajax+mybatis(15)
  2. BeautifulSoup用法详解
  3. ABAP SE54 视图簇
  4. WebLogic(12C)——WLST
  5. TI公司TMS封装与引脚对应关系
  6. 环境在线监测监控系统
  7. 「滴滴-橙心优选」秋招面试复盘总结
  8. 惠民工程(最小生成树裸题)
  9. 解决Chaquopy在AS中pip安装过慢的问题
  10. Java编程经典书籍