本文小编为大家详细介绍“Java怎么实现人民币小写转换为大写”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么实现人民币小写转换为大写”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

publicclassRMBChange{privatestaticString[]nums={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};//单位还可以往上privatestaticString[]unit={"元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","万"};//小数位如还有需求可以直接往这个数组里加,privatestaticString[]countNum={"角","分"};publicstaticStringchange(Stringmoney){//过滤空if(money==null||"".equals(money)){return"";}StringBuilderres=newStringBuilder();String[]splitStr=money.split("\.");if(splitStr.length>2){thrownewRuntimeException("输入的参数不是数字!");}Stringfront=splitStr[0];//用于判定0的显示booleanisZero=true;if(front.length()>unit.length){thrownewRuntimeException("输入的参数大于万亿!");}for(inti=0;i<front.length();i++){//整数位处理intdw=front.length()-i-1;//用ASCII码获得数字intindex=(front.charAt(i)-'0');if(index==0){isZero=true;if(dw==0||dw==4||dw==8){//元,万,亿需要拼接res.append(unit[dw]);}}else{if(isZero&&i!=0){//多个0只显示一个res.append(nums[0]);}isZero=false;res.append(nums[index]);res.append(unit[dw]);}}//判断是否有小数位if(splitStr.length>1){//小数位处理,如果不需要则直接删除这个if及内部所有内容isZero=true;Stringback=splitStr[1];if(back.length()>countNum.length){thrownewRuntimeException("小数位小于【"+countNum[countNum.length-1]+"】!");}for(inti=0;i<back.length();i++){intindex=(back.charAt(i)-'0');if(index==0){isZero=true;}else{if(isZero&&i!=0){res.append(nums[0]);}isZero=false;res.append(nums[index]);res.append(countNum[i]);}}}returnres.toString();}}

测试数据

publicstaticvoidmain(String[]args){System.out.println(change("9999999999999.99"));//玖万玖仟玖佰玖拾玖亿玖仟玖佰玖拾玖万玖仟玖佰玖拾玖元玖角玖分System.out.println(change("5020055606500.00"));//伍万零贰佰亿零伍仟伍佰陆拾万零陆仟伍佰元System.out.println(change("4001500050.16"));//肆拾亿零壹佰伍拾万零伍拾元壹角陆分System.out.println(change("7854416"));//柒佰捌拾伍万肆仟肆佰壹拾陆元System.out.println(change("9556"));//玖仟伍佰伍拾陆元System.out.println(change("10086.0"));//壹万零捌拾陆元System.out.println(change("263341.26"));//贰拾陆万叁仟叁佰肆拾壹元贰角陆分System.out.println(change("3651.06"));//叁仟陆佰伍拾壹元零陆分System.out.println(change("1.00"));//壹元System.out.println(change("300.00"));//叁佰元System.out.println(change("2007.01"));//贰仟零柒元零壹分}

输出结果

玖万玖仟玖佰玖拾玖亿玖仟玖佰玖拾玖万玖仟玖佰玖拾玖元玖角玖分
伍万零贰佰亿零伍仟伍佰陆拾万零陆仟伍佰元
肆拾亿零壹佰伍拾万零伍拾元壹角陆分
柒佰捌拾伍万肆仟肆佰壹拾陆元
玖仟伍佰伍拾陆元
壹万零捌拾陆元
贰拾陆万叁仟叁佰肆拾壹元贰角陆分
叁仟陆佰伍拾壹元零陆分
壹元
叁佰元
贰仟零柒元零壹分

读到这里,这篇“Java怎么实现人民币小写转换为大写”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。