public final class Replace{
public static String ChangeToBig(String CurrentNumber){
//输入CurrentNumber的数字格式为%*.**;
String results=new String("¥");
String temp = CurrentNumber;
final String Units[]={"分","角","元","拾","佰","仟", //单位
"万","拾","佰","仟","亿","拾","佰","仟","兆","拾","佰","仟"};
final String Numbers[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; //大写数
java.lang.StringBuffer buf=new java.lang.StringBuffer(); //处理后的字符串
char c;
for(int i=0;i<temp.length();i++){ //去掉小数点
c=temp.charAt(i);
if(c!='.')
buf.append(c);
}
for(int i=1;i<buf.length();i++){
results+=Numbers[buf.charAt(i-1)-48];
results+=Units[buf.length()-i];
}
return results;
}
}
public static String ChangeToBig(String CurrentNumber){
//输入CurrentNumber的数字格式为%*.**;
String results=new String("¥");
String temp = CurrentNumber;
final String Units[]={"分","角","元","拾","佰","仟", //单位
"万","拾","佰","仟","亿","拾","佰","仟","兆","拾","佰","仟"};
final String Numbers[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; //大写数
java.lang.StringBuffer buf=new java.lang.StringBuffer(); //处理后的字符串
char c;
for(int i=0;i<temp.length();i++){ //去掉小数点
c=temp.charAt(i);
if(c!='.')
buf.append(c);
}
for(int i=1;i<buf.length();i++){
results+=Numbers[buf.charAt(i-1)-48];
results+=Units[buf.length()-i];
}
return results;
}
}
如果输入是12345678应该是 壹仟贰佰叁拾肆万伍仟陆佰柒拾捌 啊另外可以解释一下results+=Numbers[buf.charAt(i-1)-48];中-48是什么意思吗?
"万","拾","佰","仟","亿","拾","佰","仟","兆","拾","佰","仟"};中的"分","角","去掉后就正常了,不过这样也不能计算小数点后的币值了
(不要骂偶笨,偶素菜鸟嘛 -______________- )谁有更好的法子吗?