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; } } | |
![]() | ![]() |