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();
	}
}

  

posted @ 2016-01-25 15:06  jiangfullll  阅读(390)  评论(0)    收藏  举报