懒得写注释了,有疑问的评论就行....
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
String line;
Main m = new Main();
while (scan.hasNextLine()) {
line = scan.nextLine().trim();
String answer = "";
if(line.equals("0")) {
System.out.println("零元整");
continue;
}
int len = line.length();
char c;
for(int i = 0; i < len; i++) {
c = line.charAt(i);
if((len-i)%4 == 0) {
if(c != '0') {
answer += m.charToUpper(line.charAt(i)) + "仟";
}
else if(line.charAt(i+1) != '0') {
answer += "零";
}
}
if((len-i)%4 == 1) {
if(c != '0') {
if((len-i) == 1)
answer += m.charToUpper(line.charAt(i));
if((len-i) == 5)
answer += m.charToUpper(line.charAt(i)) + "万";
if((len-i) == 9)
answer += m.charToUpper(line.charAt(i)) + "亿";
}
else if(c == '0') {
if((len-i) == 5)
answer += "万";
if((len-i) == 9)
answer += "亿";
}
}
if((len-i)%4 == 2) {
if(c != '0')
answer += m.charToUpper(line.charAt(i)) + "拾";
else if(line.charAt(i+1) != '0')
answer += "零";
}
if((len-i)%4 == 3) {
if(c != '0')
answer += m.charToUpper(line.charAt(i)) + "佰";
else if(line.charAt(i+1) != '0')
answer += "零";
}
}
answer = answer.replace("亿万","亿");
System.out.println(answer+"元整");
}
}
public String charToUpper(char c) {
String s = null;
switch(c) {
case '0':
s = "零";
break;
case '1':
s = "壹";
break;
case '2':
s = "贰";
break;
case '3':
s = "叁";
break;
case '4':
s = "肆";
break;
case '5':
s = "伍";
break;
case '6':
s = "陆";
break;
case '7':
s = "柒";
break;
case '8':
s = "捌";
break;
case '9':
s = "玖";
break;
}
return s;
}
}