乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      人民幣大小寫轉(zhuǎn)換(自己寫了個(gè),結(jié)果發(fā)現(xiàn)有點(diǎn)問題,然后找了個(gè)比較強(qiáng)力的)

       CevenCheng 2010-11-08

      import java.text.NumberFormat;  

      import java.util.HashMap;  

      import java.util.Scanner;  

      public class AmountOfConversion {  

          //定義HashMap的value值  

          public static final String EMPTY = "";  

          public static final String ZERO = "零";  

          public static final String ONE = "壹";  

          public static final String TWO = "貳";  

          public static final String THREE = "叁";  

          public static final String FOUR = "肆";  

          public static final String FIVE = "伍";  

          public static final String SIX = "陸";  

          public static final String SEVEN = "柒";  

          public static final String EIGHT = "捌";  

          public static final String NINE = "玖";  

          public static final String TEN = "拾";  

          public static final String HUNDRED = "佰";  

          public static final String THOUSAND = "仟";  

          public static final String TEN_THOUSAND = "萬";  

          public static final String HUNDRED_MILLION = "億";  

          public static final String YUAN = "元";  

          public static final String JIAO = "角";  

          public static final String FEN = "分";  

          public static final String DOT = ".";  

          private static AmountOfConversion formatter = null

      //創(chuàng)建AmountOfConversion的實(shí)例對(duì)象  

           //創(chuàng)建初始化一個(gè)HashMap對(duì)象  

          private HashMap NumberMap = new HashMap();  

          private HashMap HighnumberofMoney = new HashMap();  

         //創(chuàng)建初始化一個(gè)NumberFormat對(duì)象  

          private NumberFormat numberFormat = 
      NumberFormat.getInstance();  

          private AmountOfConversion() {    

                    //在用new創(chuàng)建AmountOfConversion對(duì)象時(shí),
      為HashMap對(duì)象進(jìn)行key-value的映射 
       

              numberFormat.setMaximumFractionDigits(4); 
      //設(shè)置數(shù)據(jù)的小數(shù)部分的最大位數(shù)是4位  

              numberFormat.setMinimumFractionDigits(2); 
      //設(shè)置數(shù)據(jù)的小數(shù)部分的最小位數(shù)是2位  

              numberFormat.setGroupingUsed(false);    
      /*設(shè)置此格式中是不可以使用組。如果設(shè)置可以使用組,
      則數(shù) 1234567 可能被格式化為 "1,234,567"*/
       

              NumberMap.put("0", ZERO);  

              NumberMap.put("1", ONE);  

              NumberMap.put("2", TWO);  

              NumberMap.put("3", THREE);  

              NumberMap.put("4", FOUR);  

              NumberMap.put("5", FIVE);  

              NumberMap.put("6", SIX);  

              NumberMap.put("7", SEVEN);  

              NumberMap.put("8", EIGHT);  

              NumberMap.put("9", NINE);  

              NumberMap.put(DOT, DOT);  

              HighnumberofMoney.put("1", TEN);  

              HighnumberofMoney.put("2", HUNDRED);  

              HighnumberofMoney.put("3", THOUSAND);  

              HighnumberofMoney.put("4", TEN_THOUSAND);  

              HighnumberofMoney.put("5", TEN);  

              HighnumberofMoney.put("6", HUNDRED);  

              HighnumberofMoney.put("7", THOUSAND);  

              HighnumberofMoney.put("8", HUNDRED_MILLION);  

          }  

          public static AmountOfConversion getInstance() { 

      //判斷AmountOfConversion對(duì)象formatter是否初始化  

              if (formatter == null)  

                  formatter = new AmountOfConversion();  

              return formatter;  

          }  

          //進(jìn)行金額轉(zhuǎn)換的多種數(shù)據(jù)類型  

          public String format(String moneyStr) {  

              String result = "不能進(jìn)行金額轉(zhuǎn)換?。?;  

              if(isConversion(moneyStr)){  

                  result = convertIntegerTochinese(moneyStr);  

                  result = convertPointTochinese(result);  

              }  

              return result;  

          }  

          public String format(double moneyDouble) {  

              return format(numberFormat.format(moneyDouble));  

          }  

          public String format(int moneyInt) {  

              return format(numberFormat.format(moneyInt));  

          }  

          public String format(long moneyLong) {  

              return format(numberFormat.format(moneyLong));  

          }  

          public String format(Number moneyNum) {  

              return format(numberFormat.format(moneyNum));  

          }  

          private String convertIntegerTochinese(String moneyStr) { 

      //將參數(shù)中傳入的阿拉伯?dāng)?shù)字轉(zhuǎn)換成中文  

              String result;  

              StringBuffer C2CStrBufer = new StringBuffer();  

              for (int i = 0; i < moneyStr.length(); i++) {  

                  C2CStrBufer.append(NumberMap.get(moneyStr.substring(  

                          i, i + 1)));  

              }  

              // 拾佰仟萬億等都是漢字里面才有的單位,加上它們  

              int indexOfDot = C2CStrBufer.indexOf(DOT);  

              int moneyPatternCursor = 1;  

              for (int i = indexOfDot - 1; i > 0; i--) {  

                  C2CStrBufer.insert(i, HighnumberofMoney.get(EMPTY  

                          + moneyPatternCursor));  

                  moneyPatternCursor = moneyPatternCursor == 8 ? 1 

                          : moneyPatternCursor + 1;  

              }  

              String fractionPart = C2CStrBufer.substring(C2CStrBufer  

                      .indexOf("."));  

              C2CStrBufer.delete(C2CStrBufer.indexOf("."),  

                      C2CStrBufer.length());  

              while (C2CStrBufer.indexOf("零拾") != -1) {  

                  C2CStrBufer.replace(C2CStrBufer.indexOf("零拾"),  

                          C2CStrBufer.indexOf("零拾") + 2, ZERO);  

              }  

              while (C2CStrBufer.indexOf("零佰") != -1) {  

                  C2CStrBufer.replace(C2CStrBufer.indexOf("零佰"),  

                          C2CStrBufer.indexOf("零佰") + 2, ZERO);  

              }  

              while (C2CStrBufer.indexOf("零仟") != -1) {  

                  C2CStrBufer.replace(C2CStrBufer.indexOf("零仟"),  

                          C2CStrBufer.indexOf("零仟") + 2, ZERO);  

              }  

              while (C2CStrBufer.indexOf("零萬") != -1) {  

                  C2CStrBufer.replace(C2CStrBufer.indexOf("零萬"),  

                          C2CStrBufer.indexOf("零萬") + 2, TEN_THOUSAND);  

              }  

              while (C2CStrBufer.indexOf("零億") != -1) {  

                  C2CStrBufer.replace(C2CStrBufer.indexOf("零億"),  

                          C2CStrBufer.indexOf("零億") + 2, HUNDRED_MILLION);  

              }  

              while (C2CStrBufer.indexOf("零零") != -1) {  

                  C2CStrBufer.replace(C2CStrBufer.indexOf("零零"),  

                          C2CStrBufer.indexOf("零零") + 2, ZERO);  

              }  

              if (C2CStrBufer.lastIndexOf(ZERO) == C2CStrBufer.length() - 1)  

                  C2CStrBufer.delete(C2CStrBufer.length() - 1,  

                          C2CStrBufer.length());  

              C2CStrBufer.append(fractionPart);  

              result = C2CStrBufer.toString();  

              return result;  

          }  

          private String convertPointTochinese(String moneyStr) {  

      //對(duì)小數(shù)點(diǎn)后面的數(shù)字進(jìn)行漢字處理  

              String result;  

              StringBuffer C2CStrBufer = new StringBuffer(moneyStr);  

              int indexOfDot = C2CStrBufer.indexOf(DOT);  

              C2CStrBufer.replace(indexOfDot, indexOfDot + 1, YUAN);  

              C2CStrBufer.insert(C2CStrBufer.length() - 1, JIAO);  

              C2CStrBufer.insert(C2CStrBufer.length(), FEN);  

              if (C2CStrBufer.indexOf("零角零分") != -1)// 沒有零頭,加整  

                  C2CStrBufer.replace(C2CStrBufer.indexOf("零角零分"),  

                          C2CStrBufer.length(), "整");  

              else if (C2CStrBufer.indexOf("零分") != -1)// 沒有零分,加整  

                  C2CStrBufer.replace(C2CStrBufer.indexOf("零分"),  

                          C2CStrBufer.length(), "整");  

              else {  

                  if (C2CStrBufer.indexOf("零角") != -1)  

                      C2CStrBufer.delete(C2CStrBufer.indexOf("零角"),  

                              C2CStrBufer.indexOf("零角") + 2);  

              }  

              result = C2CStrBufer.toString();  

              return result;  

          }  

          private boolean isConversion(String moneyStr) {  

      //判斷參數(shù)傳來的數(shù)據(jù)是否符合進(jìn)行轉(zhuǎn)換的條件  

              int fractionDigits = moneyStr.length() - 
      moneyStr.indexOf(DOT) - 1;  

              boolean flag = true;  

              if (fractionDigits > 2){  

                  System.out.println("金額" + moneyStr + "
      的小數(shù)位多于兩位。"
      );                                  
      // 精度不能比分低  

                  flag = false;  

              }  

              return flag;  

                    

          }  

          public static void main(String args[]) {  

              System.out.println("請(qǐng)輸入金額數(shù):");  

              Scanner scanner = new Scanner(System.in);  

              String str = scanner.next();  

              System.out.println("轉(zhuǎn)換后的金額為:");  

              System.out.println(getInstance().format(new Double(str)));  

          }  

      }

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多