자바 아라비아 숫자 소문 자 변환 중국어 대문자

4237 단어 자바
아 날로 그 데 이 터 를 붙 여 소문 자 아라비아 숫자 를 중국어 대문자 로...사용 해 보 았 습 니 다.
 
package com.test;

import java.math.BigDecimal;
import java.text.NumberFormat;

/**
 * 
 * @author zxb
 *                              
 *   :120023.235---->>>>>>>>             
 *                  
 */

public class MoneyToChinese {

	public static void main(String[] args) {
		double d =30000000034.895d;
		try {
			System.out.println(toChineseCharacter(d));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 
	 * @param money
	 * @return
	 * @throws Exception
	 */
	public static String toChineseCharacter(double money) throws Exception {
		double temp = 0;
		long l = Math.abs((long) money);
		BigDecimal bil = new BigDecimal(l);
		if (bil.toString().length() > 14) {
			throw new Exception("    ,      !");
		}
		NumberFormat nf = NumberFormat.getInstance();
		nf.setMaximumFractionDigits(2);
		int i = 0;
		String result = "", sign = "", tempStr = "", temp1 = "";
		String[] arr = null;
		sign = money < 0 ? " " : "";
		temp = Math.abs(money);
		if (l == temp) {
			result = doForEach(new BigDecimal(temp).multiply(new BigDecimal(100)).toString(),
					sign);
		} else {
			nf.setMaximumFractionDigits(2);
			temp1 = nf.format(temp);
			arr = temp1.split(",");
			while (i < arr.length) {
				tempStr += arr[i];
				i++;
			}
			BigDecimal b = new BigDecimal(tempStr);
			b = b.multiply(new BigDecimal(100));
			tempStr=b.toString();
			if(tempStr.indexOf(".")==tempStr.length()-3){
				result = doForEach(tempStr.substring(0,
					tempStr.length() - 3), sign);
			}else{
				result = doForEach(tempStr.substring(0,
						tempStr.length() - 3)+"0", sign);
			}
		}
		return result;
	}

	/**
	 * 
	 * @param result
	 * @param sign
	 * @return
	 */
	public static String doForEach(String result, String sign) {
		//System.out.println("       :" + result);
		String flag = "", b_string = "";
		String[] arr = { " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ",
				" ", " ", " ", " ", " " };
		String[] arr1 = { " ", " ", " ", " ", " ", " ", " ", " ", " " };
		boolean zero = true;
		int len = 0, i = 0, z_count = 0;
		if (result == null) {
			len = 0;
		} else {
			len = result.length();
		}
		while (i < len) {
			flag = result.substring(i, i + 1);
			i++;
			if (flag.equals("0")) {
				if (len - i == 10 || len - i == 6 || len - i == 2 || len == i) {
					if (zero) {
						b_string = b_string.substring(0,
								(b_string.length()) - 1);
						zero = false;
					}
					if (len - i == 10) {
						b_string = b_string + " ";
					}
					if (len - i == 6) {
						if (!"0".equals(result.substring(i + 1, i + 2))) {
							b_string = b_string + " ";
						}
					}
					if (len - i == 2) {
						b_string = b_string + " ";
					}
					if (len == i) {
						b_string = b_string + " ";
					}
					z_count = 0;
				} else {
					if (z_count == 0) {
						b_string = b_string + " ";
						zero = true;
					}
					z_count = z_count + 1;
				}
			} else {
				b_string = b_string + arr1[Integer.parseInt(flag) - 1]
						+ arr[len - i];
				z_count = 0;
				zero = false;
			}
		}
		b_string = sign + b_string;
		return b_string;
	}
}

 
 

좋은 웹페이지 즐겨찾기