1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > android金额大小写转换 Java/android 金额 数字转成大写汉子

android金额大小写转换 Java/android 金额 数字转成大写汉子

时间:2019-04-11 08:21:22

相关推荐

android金额大小写转换 Java/android 金额 数字转成大写汉子

今天翻看自己的代码,发现了自己写的金额数字转成大写的代码,当然我也是在别人的基础上修改的,当时从网上copy了一份代码,发现能用,但是有很多bug,然后自己在别人的基础上修改了一番,满足了自己的应用!现在粘贴出来,提供给大家,也为自己以后找着方便!

我就直接贴代码了,注释都很清楚!

public class MoneyFormat {

private static final char[] UNIT={'亿','拾','佰','仟','万','拾','佰','仟'};

private static final char[] CHAINIESFIGURE2={'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};

//整数部分的转换

public static String toChineseCharI(String intString)throws NumberFormatException{

//用来存放转换后的大写数字,因为是StringBuffer类型,所以顺便把没有转换

//的数字倒序排列一下,省一个变量.

StringBuffer ChineseCharI=new StringBuffer(intString);

//倒序的数字,便于同单位合并

String rintString=ChineseCharI.reverse().toString();

//清空一下

ChineseCharI.delete(0,ChineseCharI.length());

//单位索引

int unitIndex=0;

//数字长度

int intStringLen=intString.length();

//一位由字符转换的数字

int intStringnumber=0;

//补0

boolean addZero=false;

boolean flagZero = false;

for(int i=0;i

//按单位长度循环索引

unitIndex=i%UNIT.length;

//异常检查

if(!Character.isDigit(rintString.charAt(i))) {

throw new NumberFormatException("数字中含有非法字符");

}

intStringnumber=Character.digit(rintString.charAt(i),10);

//如果当前位是0,开启补0继续循环直到不是0的位

if(intStringnumber==0){

addZero=true;

if(i!=0&&i%4==0){

if(addZero&&ChineseCharI.length()!=0){

ChineseCharI.append(CHAINIESFIGURE2[0]);

addZero = false;

}

flagZero = true;

ChineseCharI.append(UNIT[unitIndex]);

}

}else{

//若当前位不是第一位且补0开启

if(addZero&&ChineseCharI.length()!=0&&!flagZero){

ChineseCharI.append(CHAINIESFIGURE2[0]);

}

flagZero = false;

//插入单位

//个位数后面不需 要单位

if(i>0){

System.out.println(i);

ChineseCharI.append(UNIT[unitIndex]);

}

//插入大写数字

ChineseCharI.append(CHAINIESFIGURE2[intStringnumber]);

//补0关闭

addZero=false;

}

}

//异常处理

if(ChineseCharI.length()==0){

return "零";

}

return ChineseCharI.reverse().toString()+"圆整";

}

}

当然,上述代码也可能存在我没发现的bug,希望大家遇到后及时交流!共同进步!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。