goback add

Java µÄ½ð¶îת»»

8308 µã»÷¡¤0 »ØÌû
µÆ»ð»¥Áª
Â¥Ö÷

[java]
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;


public class MoneyToChinese {

   private static String[] digit = { "", "ʰ", "°Û", "Ǫ", "Íò", "ʰÍò", "°ÛÍò", "ǪÍò",
           "ÒÚ", "ʰÒÚ", "°ÛÒÚ", "ǪÒÚ", "ÍòÒÚ" };
   private static final String FEN ="·Ö";
   private static final String JIAO ="½Ç";
   private static final String YUAN ="Ô²";
   private static final String ZHENG ="Õû";
   
   
   public static void main(String[] args) {
       
       System.out.println(getMoneyString(1269854896));
   }
   
   
   /**www.atcpu.com
    * È¡µÃÊý×Ö¶ÔÓ¦µÄÖÐÎÄ
    *
    * @param money
    * @return
    */
   public static String getMoneyString(double money) {
       // ½«×Ö·û´®×ªÎªÎªBigDecimal¸ñʽ
       BigDecimal b = new BigDecimal(String.valueOf(money));
       // ÉèÖþ«¶ÈΪ2£¬Ð¡Êýµãºó2λ
       String strMoney = "" + b.setScale(2, BigDecimal.ROUND_UNNECESSARY);
       // °´Ð¡Êýµã·ÖΪ ÕûÊý ºÍ СÊý Á½²¿·Ö
       String[] amt = strMoney.split("\\.");
       // µ÷Óú¯Êý»ñÈ¡ Ôª ºÍ СÊý ²¿·ÖµÄ×Ö·û´®
       strMoney = getYuan(amt[0]) + YUAN + getJIAOFEN(amt[1]);
       // ·µ»Ø×îÖյõ½µÄ×Ö·û´®
       return strMoney;
   }

   
   
   /**
    * µÃµ½ÔªµÄ²¿·Ö
    *
    * @param s
    * @return
    */
   public static String getYuan(String s) {
       char[] c = s.toCharArray();
       StringBuffer chSb = new StringBuffer();
       int len = c.length;
       List list = new ArrayList();
       String d = "";
       for (int i = 0; i < c.length; i++) {
           // Èç¹ûÓм¸¸ö0°¤ÔÚÒ»Æðʱ, Ö»ÏÔʾһ¸öÁã¼´¿É
           if (i > 0 ;; c == '0' ;; c == c[i - 1]) {
               --len;
               continue;
           }
           // µÃµ½Êý×Ö¶ÔÓ¦µÄÖÐÎÄ
           chSb.append(getChinese(c));

           // ·ÇÁãʱ, ÏÔʾÊǼ¸°Û, »¹ÊǼ¸Çª
           if (!getChinese(c).equals("Áã")) {
               d = digit[--len];
               list.add(d);// µ±Êý×ÖÖÐÓÐÍòºÍÊ®Íòʱ, ҪȥµôÊ®Íò
               chSb.append(d);
           } else {
               --len; // Èç¹ûÊÇ0Ôò²»È¡Î»Êý
           }
       }
       String chStr = chSb.toString();
       // Èç¹ûͬʱ°üº¬ÓÐÍòºÍÊ®Íò, Ôò½«Ê®ÍòÖеÄÍòÈ¥µô
       if (list.contains("Íò") ;; list.contains("ʰÍò")) {
           chStr = chStr.replaceAll("ʰÍò", "ʰ");
       }
       if (list.contains("Íò") ;; list.contains("°ÛÍò")) {
           chStr = chStr.replaceAll("°ÛÍò", "°Û");
       }
       if (list.contains("Íò") ;; list.contains("ǪÍò")) {
           chStr = chStr.replaceAll("ǪÍò", "Ǫ");
       }
       // Èç¹ûͬʱ°üº¬ÒÚºÍÊ®ÒÚ, Ôò½«Ê®ÒÚÖеÄÒÚ×ÖÈ¥µô
       if (list.contains("ÒÚ") ;; list.contains("ʰÒÚ")) {
           chStr = chStr.replaceAll("ʰÒÚ", "ʰ");
       }
       if (list.contains("ÒÚ") ;; list.contains("°ÛÒÚ")) {
           chStr = chStr.replaceAll("°ÛÒÚ", "°Û");
       }
       if (list.contains("ÒÚ") ;; list.contains("ǪÒÚ")) {
           chStr = chStr.replaceAll("ǪÒÚ", "Ǫ");
       }
       if (list.contains("ÒÚ") ;; list.contains("ÍòÒÚ")) {
           chStr = chStr.replaceAll("ÍòÒÚ", "Íò");
       }
       // Èç¹û×îºóһλÊÇ 0, ÔòÈ¥µô
       if ((chSb.charAt(chSb.length() - 1)) == 'Áã') {
           chStr = chStr.substring(0, chStr.length() - 1);
       }
       return chStr;
   }

   
   /**
    * ·Ö½Çת»»Îª×Ö·û´®  
    *     Àý: 25 2½Ç5·Ö  
    *         02 Áã2·Ö  
    *         50 5½Ç
    *         00  Õû
    *         0   Õû
    *         2   Õû
    * @param FENJIAO
    * @return
    */
   private static String getJIAOFEN(String FENJIAO){
       // ·Ö½Ç×Ö·û´®×ªÎªÎª×Ö·ûÊý×é
       char[] ch = FENJIAO.toCharArray();
       // °´³¤¶ÈΪ0£¬Îª1£¬Îª2 À´Çø·Ö¡£
       if(ch.length==0){
           return ZHENG;
       }else if(ch.length==1){
           if(ch[0]=='0'){
               return ZHENG;
           }else{
               return getChinese(ch[0])+JIAO;
           }
       }else{
           if(ch[0]=='0';;ch[1]=='0'){
               return ZHENG;
           }else if(ch[0]=='0';;ch[1]!='0'){
               return getChinese(ch[0])+getChinese(ch[1])+FEN;
           }else if(ch[0]!='0';;ch[1]=='0'){
               return getChinese(ch[0])+JIAO;
           }else{
               return getChinese(ch[0])+JIAO+getChinese(ch[1])+FEN;
           }
       }
   }
   
   
   
   /**
    * È¡µÃÊý×Ö¶ÔÓ¦µÄÖÐÎÄ
    * @param i
    * @return
    */
   private static String getChinese(char i) {
       String ch = "";
       switch (i) {
       case '0':
           ch = "Áã";
           break;
       case '1':
           ch = "Ò¼";
           break;
       case '2':
           ch = "·¡";
           break;
       case '3':
           ch = "Èþ";
           break;
       case '4':
           ch = "ËÁ";
           break;
       case '5':
           ch = "Îé";
           break;
       case '6':
           ch = "½";
           break;
       case '7':
           ch = "Æâ";
           break;
       case '8':
           ch = "°Æ";
           break;
       case '9':
           ch = "¾Á";
           break;
       }
       return ch;
   }
   
}

ϲ»¶0 ÆÀ·Ö0