少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          //這里面主要是由于銀聯的手機支付用到了一個付款的轉換方式問題,當調用支付寶付款的時候,比如一分錢格式就是我們普通用的格式:0.01,而銀聯確要把格式轉化為000000000001(銀聯要求是12位)這種格式的,最后一位是分,然后向前依次是角,元,十元,百元,相信不用我說,你已經懂了吧。所以這里就需要一個轉換,為了應對像1000,1000.00,1000.0這種傳過來的格式的數據,特做一下轉換,然后傳給銀聯進行支付。


          package com.abin.lee.collection.inner;
          public class ConsumeFinance {
          public static enum Currency{
          CHINARMB("chinarmb"),DOLLAR("dollar"),HK("hk");
          private Currency(String textVal){
          this.textVal=textVal;
          }
          private String textVal;
          public String toString(){
          return textVal;
          }
          }
          public static String ConsumeProcess(String money,Currency currency){
          System.out.println("currentcy="+currency);
          String flag=null;
          if(currency.equals(Currency.CHINARMB)){
          ConsumeFinance.ChinaProcess chinaProcess=new ConsumeFinance.ChinaProcess();
          flag=chinaProcess.chinaChange(money, currency);
          }
          return flag;
          public static String ConsumeProcessReturn(String money,Currency currency){
          System.out.println("currentcy="+currency);
          String flag=null;
          if(currency.equals(Currency.CHINARMB)){
          ConsumeFinance.ChinaReturn chinaReturn=new ConsumeFinance.ChinaReturn();
          flag=chinaReturn.chinaReChange(money, currency);
          }
          return flag;
          public static class ChinaProcess{
          private static String status=null;
          public static String chinaChange(String money,Currency currency){
          int point=money.lastIndexOf(".");
          if(point==-1){
          StringBuffer stb=new StringBuffer();
          int len=money.length();
          int lon=10-len;
          for(int i=0;i<lon;i++){
          stb.append("0");
          }
          stb.append(money);
          stb.append("00");
          status=stb.toString().intern();
          }
          if(point>0){
          int len=money.indexOf(".");
          int chn=money.length()-len-1;
          switch(chn){
          //先判斷money格式為100.0這種格式的,小數點后面有一位小數點的情況
          case  1:
          StringBuffer stb=new StringBuffer(money);
          stb.deleteCharAt(len);
          int lend=stb.length();
          StringBuffer sb=new StringBuffer();
          for(int i=0;i<12-lend;i++){
          sb.append("0");
          }
          sb.append(stb.toString());
          status=sb.toString().intern();
          //先判斷money格式為100.01這種格式的,小數點后面有兩位小數點的情況
          case 2:
          money=money.replace(".", "");
          int lende=money.length();
          String connect="";
          for(int i=0;i<12-lende;i++){
          connect+="0";
          }
          status=connect+money;
          }
          }
          return status;
          }
          }
          //把000000001001轉化為10.01這種格式
          public static class ChinaReturn{
          private static String status=null;
          public static String chinaReChange(String money,Currency currency){
          int change=money.length();
          int num=0;
          for(int i=0;i<change;i++){
          int value=Integer.valueOf(String.valueOf(money.charAt(i)));
          if(value>0){
          num=i;
          break;
          }
          }
          money=money.substring(num);
          if(num==10){
          status="0."+money;
          }
          if(num==11){
          status="0.0"+money;
          }
          if(num<10){
          System.out.println(money.length());
          StringBuffer stb=new StringBuffer(money);
          stb.insert(money.length()-2, ".");
          status=stb.toString().intern();
          }
          return status;
          }
          }
          public static void main(String[] args) {
          Currency currency=Currency.CHINARMB;
          String money="000000001001";
          String result=ConsumeProcessReturn(money, currency);
          // String result=ConsumeProcess(money, currency);
          System.out.println("result="+result);
          }
          }
          posted on 2012-09-02 00:03 abin 閱讀(1867) 評論(0)  編輯  收藏 所屬分類: Java內部類 、JavaEnum
          主站蜘蛛池模板: 腾冲县| 蒙阴县| 罗源县| 思茅市| 新绛县| 荃湾区| 浦北县| 永和县| 平乐县| 太白县| 西丰县| 铜鼓县| 绥棱县| 宜春市| 淅川县| 绥江县| 青龙| 酉阳| 泾阳县| 平凉市| 邮箱| 达拉特旗| 印江| 苗栗县| 札达县| 保山市| 株洲市| 苍南县| 车险| 嵩明县| 宁德市| 滦平县| 思南县| 青州市| 本溪| 青冈县| 紫金县| 巴马| 延吉市| 咸丰县| 北辰区|