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"; } }