法一:自己
//只能精确到千亿位,老师的可以随意位
package week;
import java.util.*;
public class TransMoney {
public static void main(String []args){
char []digit={'零','一','二','三','四','五','六','七','八','九'};
char []loc={'千','百','十','亿','千','百','十','万','千','百','十','元'};
Scanner reader=new Scanner(System.in);
String data;
while(reader.hasNext()){
data=reader.next();
int start;
char temp[]=new char[data.length()*2];
for(int i=0;i<data.length();i++){
temp[i*2]=digit[data.charAt(i)-'0'];
}
start=12-data.length();
for(int i=start,j=1;i<loc.length;i++,j+=2){
temp[j]=loc[i];
}
String result=new String(temp);
result=result.replaceAll("零[千百十]","零");
result=result.replaceAll("零零零零亿","");
result=result.replaceAll("零零零零万","");
result=result.replaceAll("零零零零元","零元");
result=result.replaceAll("零+","零");
result=result.replaceAll("零亿","亿");
result=result.replaceAll("零万","万");
result=result.replaceAll("零元","元");
System.out.println(result);
}
}
}
法二:老师
package week;
import java.util.*;
public class TransMoney2{
public static void main(String []args){
char []digit={'零','一','二','三','四','五','六','七','八','九'};
char []loc={'亿','千','百','十','万','千','百','十'};
Scanner reader=new Scanner(System.in);
String data;
while(reader.hasNext()){
data=reader.next();
char temp[]=new char[data.length()*2];
for(int i=0;i<data.length();i++){
temp[i*2]=digit[data.charAt(i)-'0'];
}
for(int i=temp.length-3,j=7;i>=1;i-=2,j=j==0?7:--j){
temp[i]=loc[j];
}
temp[temp.length-1]='元';
String result=new String(temp);
result=result.replaceAll("零[千百十]","零");
result=result.replaceAll("零零零零亿","");
result=result.replaceAll("零零零零万","");
result=result.replaceAll("零零零零元","零元");
result=result.replaceAll("零+","零");
result=result.replaceAll("零亿","亿");
result=result.replaceAll("零万","万");
result=result.replaceAll("零元","元");
System.out.println(result);
}
}
}