少年阿賓

          那些青春的歲月

            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 閱讀(1874) 評論(0)  編輯  收藏 所屬分類: Java內部類 、JavaEnum
          主站蜘蛛池模板: 马鞍山市| 延安市| 雷波县| 青河县| 红桥区| 凤庆县| 全州县| 龙岩市| 阜新| 高唐县| 彝良县| 台江县| 曲靖市| 达日县| 息烽县| 镇原县| 太保市| 鄂尔多斯市| 曲水县| 天全县| 麻城市| 锡林浩特市| 樟树市| 台湾省| 日喀则市| 潍坊市| 游戏| 天峨县| 泊头市| 衡东县| 迁西县| 桐柏县| 仁布县| 高邮市| 新野县| 凌云县| 台湾省| 黄大仙区| 盐城市| 芜湖市| 通化市|