满足主函数中的测试用例。
实现最基本的基础上通过,string replaceAll方法替换一些特殊用例
replace和replaceAll的区别
replaceAll使用的参数可以是正则表达式
package practiceCode;
public class HanziTransfer {
public static String transform(int num){
String[] jinzhistr={"","十","百","千","万","十","百","千","亿"};
String[] alaboNum={"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
StringBuffer str =new StringBuffer();
int[] result=new int[String.valueOf(num).length()];
while(num!=0){
int length=String.valueOf(num).length();
int calResult=num/(int) Math.pow(10,length-1);
int remainder =num-calResult*(int) Math.pow(10,length-1);
result[length-1]=calResult;
num=remainder;
}
for(int i=result.length-1;i>=0;i--){
str.append(alaboNum[result[i]]);
str.append(jinzhistr[i]);
}
String realStr = str.toString();
realStr=realStr.replaceAll("零[十百千]", "元");
realStr=realStr.replaceAll("零{2,}", "零");
realStr=realStr.replaceAll("零([元万亿])", "$1");
realStr=realStr.replaceAll("亿万", "亿");
return realStr;
}
public static void main(String[] args) {
// 25364
// 466932300
// 12350006
// 100000
// 66699553001
int num=466932300;
String str=transform(num);
System.out.println(str);
}
}