//A.java
public class A {
public static void main(String[] args) {
int a = 1234567890;
System.out.println(last(exec(a)));
}
//独立数值+位数
public static String exec(int num) {
String r = "";
String n = String.valueOf(num);
for (int i = 0; i < n.length(); i++) {
r += change(Integer.parseInt(String.valueOf((String.valueOf(n).charAt(i)))), 10 - i);
}
return r;
}
//数值+位置 汉化
public static String change(int n, int l) {
String str = "";
switch (n) {
case 0:
str += "零";
break;
case 1:
str += "一";
break;
case 2:
str += "二";
break;
case 3:
str += "三";
break;
case 4:
str += "四";
break;
case 5:
str += "五";
break;
case 6:
str += "六";
break;
case 7:
str += "七";
break;
case 8:
str += "八";
break;
case 9:
str += "九";
break;
}
switch (l) {
case 1:
break;
case 2:
str += "十";
break;
case 3:
str += "百";
break;
case 4:
str += "千";
break;
case 5:
str += "万";
break;
case 6:
str += "十";
break;
case 7:
str += "百";
break;
case 8:
str += "千";
break;
case 9:
str += "亿";
break;
case 10:
str += "十";
break;
}
return str;
}
//完善
public static String last(String str){
String l=str;
while(l.indexOf("一十")>=0&&l.indexOf("一十")<l.length()){
l=l.replace("一十", "十");
}
while(l.indexOf("零零")>=0&&l.indexOf("零零")<l.length()){
l=l.replace("零零", "零");
}
if(l.charAt(l.length()-1)=='零'){
l=l.substring(0,l.length()-1);
}
return l;
}
}
运行结果:
十二亿三千四百五十六万七千八百九十