java实现将整数转化为中文大写金额
数字转大写
public class ConvertDigit {
private static String[] NUMBER1 = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
private static String[] NUMBER2 = {"零", "拾", "佰", "仟", "万", "亿"};
private static int seed = 10000;
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(convertDigitToString(9232045));
System.out.println(convertDigitToString(4332005));
System.out.println(convertDigitToString(830372005));
}
private static String convertDigitToString(int num) {
StringBuilder sb = new StringBuilder();
int g = num/(seed*seed); //亿
int m = (num/seed)%seed; //万
int t = num%seed; //千
if(g > 0) {
sb.append(convertDigitTo10000(g));
sb.append(NUMBER2[5]);
}
if(m > 999) { //如果大于999,则不加零
sb.append(convertDigitTo10000(m));
sb.append(NUMBER2[4]);
} else {
if(g > 0) {
sb.append(NUMBER2[0]);
}
sb.append(convertDigitTo10000(m));
sb.append(NUMBER2[4]);
}
if(t > 999) {
sb.append(convertDigitTo10000(t));
} else {
if(m > 0) {
sb.append(NUMBER2[0]);
}
sb.append(convertDigitTo10000(t));
}
return sb.toString();
}
private static String convertDigitTo10000(int num) {
StringBuilder sb = new StringBuilder();
int t = num/1000;
int h = (num/100)%10;
int d = (num/10)%10;
int s = num%10;
if(t > 0) {
sb.append(NUMBER1[t]);
sb.append(NUMBER2[3]);
}
if(h > 0) {
sb.append(NUMBER1[h]);
sb.append(NUMBER2[2]);
} else {
if(t > 0) {
sb.append(NUMBER2[0]);
}
}
if(d > 0) {
sb.append(NUMBER1[d]);
sb.append(NUMBER2[1]);
} else {
if(h > 0) {
sb.append(NUMBER2[0]);
}
}
if(s > 0) {
sb.append(NUMBER1[s]);
}
return sb.toString();
}
}

浙公网安备 33010602011771号