JAVA浮点数转中文金额
来源:互联网 发布:python 使用多个def的 编辑:程序博客网 时间:2024/06/03 22:49
import java.text.DecimalFormat;class Translate{ //字符串转化 public Translate(String temp){ String f=this.spilt(temp); System.out.println("转化后为:"+f); } private String numFormat(int flag,String s) { String a1[]= {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; String a2[]= {"元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","万"}; String a3[]= {"分","角"}; String temp=""; for(int i=0;i<s.length();i++) { if(flag==1) { if(s.length()>13) { System.out.println("输入数据过大!(数值不可超过亿万!)"); return ""; } temp=temp+a1[s.charAt(i)-'0']+a2[s.length()-i-1]; }else if(flag==2) { temp=temp+a1[s.charAt(i)-'0']+a3[s.length()-i-1]; } } return temp; } //检查数据合法性 private boolean checkNum(String s) { try { float f=Float.valueOf(s); if(f<0) { System.out.println("非法数据,请检查"); return false; }else { return true; } }catch(Exception e) { System.out.println("非法数据,请检查"); return false; } } //检测并拆分数据 private String spilt(String s) { if(checkNum(s)) { String temp[]=s.split("\\."); if(temp.length==2) { String intOnly=temp[0]; String part1=this.numFormat(1, intOnly); String smallOnly=temp[1]; Double smallTemp=Double.parseDouble("0."+smallOnly); DecimalFormat df=new DecimalFormat("#.00"); String small=df.format(smallTemp).substring(1); int temp1=Integer.parseInt(small); String part2=this.numFormat(2, temp1+""); return cleanZero(part1+part2); }else if(temp.length==1){ String intOnly=temp[0]; String part1=this.numFormat(1,intOnly); return cleanZero(part1); }else { return ""; } }else { return ""; } } //清除多余的零 private String cleanZero(String s) { //去除字符串前多余零 while(s.charAt(0)=='零') { //去除开头零 s=s.substring(1); if(s.length()==1) { return "零"; } } String regex1[]= {"零仟","零佰","零拾"}; String regex2[]= {"零亿","零万","零元"}; String regex3[]= {"亿","万","元"}; String regex4[]= {"零角","零分"}; for(int i=0;i<3;i++) { s=s.replaceAll(regex1[i], "零"); } for(int i=0;i<3;i++) { s.replaceAll("零零零", "零"); s.replaceAll("零零", "零"); s=s.replaceAll(regex2[i], regex3[i]); } for(int i=0;i<2;i++) { s=s.replaceAll(regex4[i], ""); } //万到亿全是零,只保留亿 s=s.replaceAll("亿万", "亿"); return s; }}public class test{ public static void main(String args[]) { menu(); } public static void menu() { while(true) { System.out.println("1.数字转中文金额"); System.out.println("2.退出"); System.out.println("请输入:"); java.util.Scanner sc=new java.util.Scanner(System.in); int caseNum=sc.nextInt(); sc.nextLine(); switch(caseNum) { case 1: System.out.println("请输入要转化的数值:"); String temp=sc.next(); new Translate(temp); break; case 2: System.out.println("正在退出!"); sc.close(); System.exit(0); } } }}
阅读全文
0 0
- JAVA浮点数转中文金额
- JAVA应用: 浮点数转化为大写中文金额
- 浮点数的那些坑,Java中的金额处理方案
- java金额转中文大写
- java 金额数字转中文
- 浮点数转为人民币金额大写
- 浮点数转换为大写货币金额
- 金额数字转中文大写(转)(java)
- Java编写的金额转中文大写
- Java金额数字转中文大写
- java金额数字转中文工具类
- java中金额(浮点表示)的计算
- java中金额(浮点表示)的计算
- 金额转中文大写
- 金额转中文大写
- <转>JAVA精确的浮点数运算
- java 浮点数运算
- Java 浮点数
- 使input文本框不可编辑的3种方法
- Linux驱动之定时器和延时
- Python爬虫环境常用库安装
- NYOJ 488 素数环
- C++ opencv把蓝底照片转化为白底照片
- JAVA浮点数转中文金额
- 动手实践Makefile之ifeq
- HUD4393 Throw nails(思维模拟)
- CF 894 B/C 数学
- SDUT-1591
- 阿里云服务器发送邮件失败,25端口被禁用,采用ssl 方式 465端口发送
- Intellij IDEA ,按Ctrl+左键,不能进入类或方法的【解决办法】,提示Cannot find declaration to go to
- 内存对齐
- JQ定时请求数据,并根据返回的数据停止请求