JAVA 数字转换为中文大写的转换
2013-08-09 00:07
218 查看
【转】
读入一个浮点数值,将其转化为中文金额的大写形式。 如123.45,转化为:壹佰贰拾叁元肆角伍分。 以下是各种情况要完善: 1. 当金额为整数,只表示整数部分,省略小数部分,并添加“整”字。如123表示为:壹佰贰拾叁元整。 2.当金额中含有连续的0时,只需写一个“零”即可。如10005表示为:壹万零伍元整。 3.10的表示形式。如110表示为:壹佰贰拾元整。而10则表示为:拾元整。
package com.heyang;/*** 将10亿以内的阿拉伯数字转成汉字大写形式* @author xizhenyin**/public class CnUpperCaser {// 整数部分private String integerPart;// 小数部分private String floatPart;// 将数字转化为汉字的数组,因为各个实例都要使用所以设为静态private static final char[] cnNumbers={'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};// 供分级转化的数组,因为各个实例都要使用所以设为静态private static final char[] series={'元','拾','百','仟','万','拾','百','仟','亿'};/*** 构造函数,通过它将阿拉伯数字形式的字符串传入* @param original*/public CnUpperCaser(String original){// 成员变量初始化integerPart="";floatPart="";if(original.contains(".")){// 如果包含小数点int dotIndex=original.indexOf(".");integerPart=original.substring(0,dotIndex);floatPart=original.substring(dotIndex+1);}else{// 不包含小数点integerPart=original;}}/*** 取得大写形式的字符串* @return*/public String getCnString(){// 因为是累加所以用StringBufferStringBuffer sb=new StringBuffer();// 整数部分处理for(int i=0;i<integerPart.length();i++){int number=getNumber(integerPart.charAt(i));sb.append(cnNumbers[number]);sb.append(series[integerPart.length()-1-i]);}// 小数部分处理if(floatPart.length()>0){sb.append("点");for(int i=0;i<floatPart.length();i++){int number=getNumber(floatPart.charAt(i));sb.append(cnNumbers[number]);}}// 返回拼接好的字符串return sb.toString();}/*** 将字符形式的数字转化为整形数字* 因为所有实例都要用到所以用静态修饰* @param c* @return*/private static int getNumber(char c){String str=String.valueOf(c);return Integer.parseInt(str);}/*** @param args*/public static void main(String[] args) {System.out.println(new CnUpperCaser("123456789.12345").getCnString());System.out.println(new CnUpperCaser("123456789").getCnString());System.out.println(new CnUpperCaser(".123456789").getCnString());System.out.println(new CnUpperCaser("0.1234").getCnString());System.out.println(new CnUpperCaser("1").getCnString());System.out.println(new CnUpperCaser("12").getCnString());System.out.println(new CnUpperCaser("123").getCnString());System.out.println(new CnUpperCaser("1234").getCnString());System.out.println(new CnUpperCaser("12345").getCnString());System.out.println(new CnUpperCaser("123456").getCnString());System.out.println(new CnUpperCaser("1234567").getCnString());System.out.println(new CnUpperCaser("12345678").getCnString());System.out.println(new CnUpperCaser("123456789").getCnString());}}
相关文章推荐
- JAVA 数字转换为中文大写的转换
- JAVA编写 将阿拉伯数字转换成中文大写(不要Script的)
- java阿拉伯数字表示的金额转换成中文大写金额
- java实现金额数字转换为中文大写
- java实现人民币数字转换中文大写的工具实例代码demo分享
- Java实现阿拉伯数字转换成中文大写数字,以及中文大写数字到阿拉伯数字的转换。
- Java中实现数字金额到中文大写字符的转换!!
- 刚开始学Java,写了一个金额大写转换和中文大写数字转换的类
- java 中文大写数字 转换成 阿拉伯数字
- .Net/C#/VB/T-SQL/Java 实现: 将天文数字转换成中文大写 (2000 年前的思路,打劫的,一点儿技术含量都没有)
- .Net/C#/VB/T-SQL/Java 实现: 将天文数字转换成中文大写 (2000 年前的思路,打劫的,一点儿技术含量都没有)
- java 实现将String字符串大写中文数字转换成int类型整数
- Java中实现数字金额到中文大写字符的转换!! 选择自 netfalcon 的 Blog
- java实现数字金额转换中文大写金额
- java 实验七 之 阿拉伯整数转换为中文大写数字(注意读法)
- 使用 JAVA 将数字金额转换成大写中文金额
- Java代码实现数字转换中文大写及人民币大写
- Java中实现数字金额到中文大写字符的转换!!
- .Net/C#/VB/T-SQL/Java/Script 实现: 将天文数字转换成中文大写 (2000 年前的思路,打劫的,一点儿技术含量都没有)
- 关于转换大写中文金额-新学的java函数整理