import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.Map;
public class Transform { public static void main(String[] args){ String number = "101000001010"; String str1 = null; String str2 = null; Map numMap = new HashMap(); numMap.put('0', "零"); numMap.put('1', "壹"); numMap.put('2', "贰"); numMap.put('3', "叁"); numMap.put('4', "肆"); numMap.put('5', "伍"); numMap.put('6', "陆"); numMap.put('7', "柒"); numMap.put('8', "捌"); numMap.put('9', "玖"); //去掉小数位,不进行换算. if(number.indexOf(".") == -1){ str1 = number; }else{ str1 = number.substring(0,number.indexOf(".")); str2 = number.substring(number.indexOf(".")+1); } System.out.println(str1); //每隔4位数字,放入到一个集合中. ArrayList al = new ArrayList(); while(true){ String ss = ""; if(str1.length() >4){ ss = str1.substring(str1.length()-4,str1.length()); str1 = str1.substring(0,str1.length()-4); al.add(ss); }else{ ss = str1.substring(0); for(int k =0;k<(4-str1.length());k++){ ss="0"+ss; } al.add(ss); break; } } String finalStr = ""; //反转集合 Collections.reverse(al); //拼成最终的字符串. for(int i =0;i<al.size();i++){ char[] cs =((String)al.get(i)).toCharArray(); if(al.size() == 3 ){ if(i == 0){ finalStr += toChinese(cs, numMap)+"亿"; }else if(i == 1){ if(toChinese(cs, numMap) == ""){ finalStr += "零"; }else{ finalStr += toChinese(cs, numMap)+"万"; } }else{ finalStr += toChinese(cs, numMap); } }else if(al.size() == 2 ){ if(i == 0){ finalStr += toChinese(cs, numMap)+"万"; }else{ finalStr += toChinese(cs, numMap); } }else if(al.size() == 1){ finalStr += toChinese(cs, numMap); } } System.out.println(finalStr+"元整"); } //把4位数字换成汉字.根据排列组合,共有16中不同. public static String toChinese(char[] cs,Map numMap){ //000x -- 1 if(cs[0]=='0' && cs[1]=='0'&& cs[2]=='0'&& cs[3]!='0'){ return (String) numMap.get(cs[3]); } //00x0 -- 2 else if(cs[0]=='0' && cs[1]=='0'&& cs[2]!='0'&& cs[3]=='0'){ return numMap.get(cs[2])+"拾"; } //0x00 -- 3 else if(cs[0]=='0' && cs[1]!='0'&& cs[2]=='0'&& cs[3]=='0'){ return numMap.get(cs[1])+"佰"; } //x000 -- 4 else if(cs[0]!='0' && cs[1]=='0'&& cs[2]=='0'&& cs[3]=='0'){ return numMap.get(cs[0])+"仟"; } //00xx -- 5 else if(cs[0]=='0' && cs[1]=='0'&& cs[2]!='0'&& cs[3]!='0'){ return numMap.get(cs[2])+"拾" + numMap.get(cs[3]); } //0x0x -- 6 else if(cs[0]=='0' && cs[1]!='0'&& cs[2]=='0'&& cs[3]!='0'){ return numMap.get(cs[1])+"佰" + numMap.get(cs[2]) + numMap.get(cs[3]); } //x00x -- 7 else if(cs[0]!='0' && cs[1]=='0'&& cs[2]=='0'&& cs[3]!='0'){ return numMap.get(cs[0])+"仟" + numMap.get(cs[1]) + numMap.get(cs[3]); } //0xxx -- 8 else if(cs[0]=='0' && cs[1]!='0'&& cs[2]!='0'&& cs[3]!='0'){ return numMap.get(cs[1])+"佰" + numMap.get(cs[2]) + "拾" + numMap.get(cs[3]); } //x0xx -- 9 else if(cs[0]!='0' && cs[1]=='0'&& cs[2]!='0'&& cs[3]!='0'){ return numMap.get(cs[0])+"仟" + numMap.get(cs[1]) +numMap.get(cs[2]) + "拾" + numMap.get(cs[3]); } //xxxx -- 10 else if(cs[0]!='0' && cs[1]!='0'&& cs[2]!='0'&& cs[3]!='0'){ return numMap.get(cs[0])+"仟" + numMap.get(cs[1]) + "佰" +numMap.get(cs[2]) + "拾" + numMap.get(cs[3]); } //xxx0 -- 11 else if(cs[0]!='0' && cs[1]!='0'&& cs[2]!='0'&& cs[3]=='0'){ return numMap.get(cs[0])+"仟" + numMap.get(cs[1]) + "佰" +numMap.get(cs[2]) + "拾" ; } //xx00 -- 12 else if(cs[0]!='0' && cs[1]!='0'&& cs[2]=='0'&& cs[3]=='0'){ return numMap.get(cs[0])+"仟" + numMap.get(cs[1]) + "佰" ; } //0xx0 -- 13 else if(cs[0]=='0' && cs[1]!='0'&& cs[2]!='0'&& cs[3]=='0'){ return numMap.get(cs[1])+"佰" + numMap.get(cs[2]) + "拾" ; } //xx0x -- 14 else if(cs[0]!='0' && cs[1]!='0'&& cs[2]=='0'&& cs[3]!='0'){ return numMap.get(cs[0])+"仟" + numMap.get(cs[1]) + "佰" +numMap.get(cs[2])+numMap.get(cs[3]) ; } //x0x0 -- 15 else if(cs[0]!='0' && cs[1]=='0'&& cs[2]!='0'&& cs[3]=='0'){ return numMap.get(cs[0])+"仟" + numMap.get(cs[1]) +numMap.get(cs[2])+"拾"; } //0000 -- 16 else{ return ""; } } }
