永发信息网

java:人民币大小写转换:比如比输入123456,要求输出:拾贰万叁仟肆佰伍拾柒,请不要用数组方法

答案:1  悬赏:70  手机版
解决时间 2021-02-14 00:33
  • 提问者网友:绫月
  • 2021-02-13 05:59
java:人民币大小写转换:比如比输入123456,要求输出:拾贰万叁仟肆佰伍拾柒,请不要用数组方法
最佳答案
  • 五星知识达人网友:神也偏爱
  • 2021-02-13 07:01
public class MoneySmallToBig {
转自CSDN的东东

//别说这里用数组,这里定义大写的是必须的
public static String[] number = new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖" };
public static String[] units = new String[]{"元","拾","佰","仟"};
public static void change(String smoney){
StringBuffer sb=new StringBuffer();
//小数点的位置
int index=smoney.indexOf(".");

//biggerstr用于存放存有数字和单位的字符
StringBuffer biggerstr=new StringBuffer();

//处理小数部分
biggerstr.append("分");
biggerstr.append(number[Integer.parseInt(smoney.charAt(index+2)+"")]);
biggerstr.append("角");
biggerstr.append(number[Integer.parseInt(smoney.charAt(index+1)+"")]);

//处理整数部分
for(int i=0;i<index;i++){
sb.append(number[Integer.parseInt(smoney.charAt(i)+"")]);
}
sb=sb.reverse();
String insertstr=sb.toString();
for(int i=0;i<insertstr.length();i++){
//插入单位
if(i==0){
biggerstr.append("元");
}
else if((i+4)%4==0 && i!=8){
biggerstr.append("万");
}
else if(i%8==0){
biggerstr.append("亿");
}
else
biggerstr.append(units[i%4]);
//插入数字
biggerstr.append(insertstr.charAt(i));
}

//instead_zero字符串用于存放清除零之后的
String instead_zero=biggerstr.reverse().toString();
instead_zero=instead_zero.replaceAll("零分", "零");
instead_zero=instead_zero.replaceAll("零角", "零");
instead_zero=instead_zero.replaceAll("零佰", "零");
instead_zero=instead_zero.replaceAll("零仟", "零");
instead_zero=instead_zero.replaceAll("零拾", "零");
//把相连的零去掉
instead_zero=instead_zero.replaceAll("[零]+","零");
instead_zero=instead_zero.replaceAll("零元", "元");
instead_zero=instead_zero.replaceAll("零万", "万");
instead_zero=instead_zero.replaceAll("零亿", "亿");
//把字符串中的最后一个零去掉
if(instead_zero.charAt(instead_zero.length()-1)=='零'){
instead_zero=instead_zero.substring(0, instead_zero.length()-1);
}
System.out.println(instead_zero);
}
public static void main(String[] args) {
String smoney="1020089090.89";
change(smoney);
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯