将数字金额转换成中文金额

package test;

##只能支持千位一下 import java.util.HashMap; import java.util.Map; public class NumberToChineseConverter { private static Map<Integer,String> oneToten=new HashMap<Integer,String>(); static{ oneToten.put(0,"零"); oneToten.put(1,"一"); oneToten.put(2,"二"); oneToten.put(3,"三"); oneToten.put(4,"四"); oneToten.put(5,"五"); oneToten.put(6,"六"); oneToten.put(7,"七"); oneToten.put(8,"八"); oneToten.put(9,"九"); } public static void main(String[] args) { System.out.println(convertToChinese(4338)); } private static String convertToChinese(int number){ int thousand=number/1000; thousand=checkOverTen(thousand); int hundred=number/100; hundred=checkOverTen(hundred); int ten=number/10; ten=checkOverTen(ten); int last=number%10; if(last==0){ return oneToten.get(thousand)+"千"+oneToten.get(hundred)+"百"+oneToten.get(ten)+"十整"; }else{ return oneToten.get(thousand)+"千"+oneToten.get(hundred)+"百"+oneToten.get(ten)+"十"+oneToten.get(last)+"整"; } } private static int checkOverTen(int number){ if(number>10&&number%10!=0){ number=number%10; } return number; } }

  

package test;

import java.util.HashMap;
import java.util.Map;

### 支持到 int 最大值 

public class NumberToChineseConverter {
	
	
	private static Map<Character,String> oneTotenStr=new HashMap<Character,String>();
	
	private static String[] chineseformat={"十","百","千","万","十万","百万","千万","亿","十亿"};
	
	static{
		
		oneTotenStr.put('0',"零");
		oneTotenStr.put('1',"一");
		oneTotenStr.put('2',"二");
		oneTotenStr.put('3',"三");
		oneTotenStr.put('4',"四");
		oneTotenStr.put('5',"五");
		oneTotenStr.put('6',"六");
		oneTotenStr.put('7',"七");
		oneTotenStr.put('8',"八");
		oneTotenStr.put('9',"九");
	}

	public static void main(String[] args)  {
		System.out.println(Integer.MAX_VALUE);
		System.out.println(convertToChinese2(Integer.MAX_VALUE));
	}	
	
	
	
	private static String convertToChinese2(int number){
		String num=String.valueOf(number);
		return matchUp(num);

		
	}
	
	private static String matchUp(String number){
		if(number.length()<13){
			String s="";
			for(int i=0;i<number.length()-1;i++){
				char temp=number.charAt(i);
				s+=oneTotenStr.get(temp)+chineseformat[number.length()-2-i];
			}
			char c=number.charAt(number.length()-1);
			s+=oneTotenStr.get(c);
			return s;
		}
		return "number is over length";
		
		
	}
	
}

  

posted @ 2015-03-15 11:13  IamThat  阅读(329)  评论(0编辑  收藏  举报