java 中大写数字与阿拉伯数之间的相互转换
来源:互联网 发布:打开galgame的软件 编辑:程序博客网 时间:2024/05/03 08:59
public class CNNumberFormat { private static final char []cnNumbers={'零', '壹', '贰', '叁', '肆', '伍','陆', '柒', '捌', '玖'}; private static final char []stdNumbers={'0','1','2','3','4','5','6','7','8','9'}; /** *货币单位 */ private static final char []units={ '厘', '分', '角', '元', '拾', '佰', '仟','万', '拾', '佰', '仟', '亿', '拾', '佰', '仟'}; /** * 是否输出货币的单位的圆角分的完整格式 */ private boolean fullFormat=true; public CNNumberFormat() { }private CNNumberFormat(boolean fullFormat) {this.fullFormat = fullFormat;}/** * 取得大写形式的装换 * @param d * @return */ public String format(double d){ NumberFormat nf=new DecimalFormat("#.###"); return this.transform(nf.format(d)); } public String format(long ln){ return this.transform(String.valueOf(ln)); } private String transform(String original){ String integerPart=""; String floatPart=""; if(original.indexOf(".")>-1){ int dotIndex=original.indexOf("."); integerPart=original.substring(0,dotIndex); floatPart=original.substring(dotIndex+1); }else{ integerPart=original; } StringBuffer sb=new StringBuffer(); //整数部分部处理 for(int i=0;i<integerPart.length();i++){ int number=Integer.parseInt(String.valueOf(integerPart.charAt(i))); sb.append(cnNumbers[number]); if(fullFormat){ sb.append(units[integerPart.length()+2-i]); } } //小数部分处理 if(floatPart.length()>=1){ for(int i=0;i<floatPart.length();i++){ int number=Integer.parseInt(String.valueOf(floatPart.charAt(i))); sb.append(cnNumbers[number]); if(fullFormat && i<=3){ sb.append(units[2-i]); } } } return sb.toString(); } /** * 将中文大写数字字符串转换成对应的数字类型 * @param cnNumber * @return */ public Number parse(String cnNumStr){ if(cnNumStr==null || "".equals(cnNumStr.trim())){ return null; } cnNumStr=cnNumStr.replaceAll("整",""); if(!cnNumStr.endsWith("元")){ cnNumStr=cnNumStr.replaceAll("元","."); } for(int k=0;k<cnNumStr.length();k++){ for(int i=0;i<cnNumbers.length;i++){ cnNumStr = cnNumStr.replace(cnNumbers[i],stdNumbers[i]); } } for(int j=0;j<units.length;j++){ cnNumStr=cnNumStr.replace(units[j]+"",""); } BigDecimal b=new BigDecimal(cnNumStr); return b; }}
1 0
- java 中大写数字与阿拉伯数之间的相互转换
- c语言中数字与字符之间的相互转换
- 数字与百分比之间的相互转换
- 数字与char之间的相互转换
- java 实验七 之 阿拉伯整数转换为中文大写数字(注意读法)
- Java中字符串与byte数组之间的相互转换
- Java中Json字符串与对象之间的相互转换
- 人民币,大写中文与数字之间转换
- ip地址在数字与字符串之间的相互转换
- Qt数字与字符串之间的相互转换
- Python数字与字符之间的相互转换
- Sheet列号与数字之间的相互转换
- Qt数字与字符串之间的相互转换
- C语言字符串与数字之间的相互转换
- VC++中数字和字符之间的相互转换
- JAVA中数字类型与字符串之间的转换
- Java中字符串与数字之间的转换
- java中数字转换汉语中人民币的大写
- ACE、TAO、CIAO
- 管理者应促进同事友谊
- android开源项目和框架
- wireshark的使用教程
- wordpress 搭建电子商务系统对顾客隐藏后台
- java 中大写数字与阿拉伯数之间的相互转换
- OpenGL: 反走样 雾 点参数 多边形偏移
- 代码面试最常用的10大算法
- 实验环境安装及配置(二)——域环境的安装
- 【HttpClient4】 基本操作
- Openwrt下的makefile文件、编译
- Perl 中的正则表达式
- AIX、HP-UX、Linux、Solaris 常用命令及配置文件对照表
- isset()和empty()的区别