问题:a2=a2.replaceAll("零零零", " 零");
a2=a2.replaceAll("零零", " 零");
为什么不能实现replace替换
希望大佬检查一下
这里也记录了了自己的思路过程(见谅)
package passage2;
import java.util.Scanner;
import java.text.DecimalFormat;
public class fantihua {
public static String Replace(String money) {
money=money.replaceAll("1", "壹");
money=money.replaceAll("2", "贰");
money=money.replaceAll("3", "叁");
money=money.replaceAll("4", "肆");
money=money.replaceAll("5", "伍");
money=money.replaceAll("6", "陆");
money=money.replaceAll("7", "柒");
money=money.replaceAll("8", "捌");
money=money.replaceAll("9", "玖");
money=money.replaceAll("0", "零");
return money;
}
public static void fantihua(double Money) {
Money=Money*100;
int money=(int) Money;
System.out.println(money);//化为角
// String MONEY1=Integer.toString(money*100);
// DecimalFormat df=new DecimalFormat("####,####");
// String MONEY=df.format(money*100);
// System.out.println(MONEY);//四个四个一组
// String []a=MONEY.split(",");
// int i=((MONEY1.length())/4);
// for(;i>=0;i--) {
// System.out.println(a[i]);
// }
String MONEY=String.valueOf(money);
int[]x=new int[MONEY.length()];
String[]y=new String[MONEY.length()];
int length=MONEY.length();
for(int i=0;i<MONEY.length();i++) {
x[MONEY.length()-i-1]=Integer.parseInt(String.valueOf(MONEY.charAt(i)));
y[MONEY.length()-i-1]=String.valueOf(MONEY.charAt(i));
}
System.out.println(x[1]);
String big[]= {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
String mian[]= {"分","角","元","拾","佰","仟","万","拾","佰","仟","亿","十","佰","仟"};
String a1[]=new String[MONEY.length()];
String lingfen="零分";
String lingjiao="零角";
String lingshi="零拾";
String lingbai="零佰";
String lingqian="零仟";
String lingwan="零万";
String lingyi="零亿";
String fen="分";
for(int i1=length-1;i1>=0;i1--) {
a1[i1]=y[i1]+mian[i1];
a1[i1]=Replace(a1[i1]);
// if(a1[i1]==lingfen) {
// }
// if(a1[i1]==lingjiao) {
//
// }
// if(a1[i1]==lingshi) {
//
// }
// if(a1[i1]==lingbai) {
//
// }
// if(a1[i1]==lingqian) {
//
// }
// if(a1[i1]==lingwan) {
// System.out.print("万");
// }
// if(a1[i1]==lingyi) {
// System.out.print("亿");
// }
// else {
// System.out.print(a1[i1]);
// }
String a2=""+a1[i1];
a2=a2.replaceAll("零分", "");
a2=a2.replaceAll("零角", "");
a2=a2.replaceAll("零元", "元");
a2=a2.replaceAll("零拾", "零");
a2=a2.replaceAll("零佰", "零");
a2=a2.replaceAll("零仟", "零");
a2=a2.replaceAll("零万", "万");
a2=a2.replaceAll("零亿", "亿");
a2=a2.replaceAll("零零零", " 零");
a2=a2.replaceAll("零零", " 零");
if(a2.endsWith("元")==true) {
a2=a2+"整";
}
System.out.print(a2);
}
}
public static void main(String[] args) {
System.out.println("你的要存的钱数:");
Scanner scanner=new Scanner(System.in);
double Money=scanner.nextDouble();
fantihua(Money);
// TODO 自动生成的方法存根
}
}
该代码段展示了一个Java程序,用于将输入的数字转换为大写的中文金额表示。程序首先将数字转换为字符串,然后用正则表达式替换各个数字和分隔符,最后进行简化处理,去除多余的“零”字符。然而,代码中存在未处理的边界情况,例如“零零”并未正确替换为“零”。

被折叠的 条评论
为什么被折叠?



