少年阿賓

          那些青春的歲月

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


          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這種格式的,小數(shù)點后面有一位小數(shù)點的情況
          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這種格式的,小數(shù)點后面有兩位小數(shù)點的情況
          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轉(zhuǎn)化為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 閱讀(1870) 評論(0)  編輯  收藏 所屬分類: Java內(nèi)部類JavaEnum
          主站蜘蛛池模板: 澳门| 如东县| 田林县| 黄冈市| 樟树市| 行唐县| 黑龙江省| 北碚区| 石屏县| 尚义县| 绥棱县| 上饶县| 叙永县| 威宁| 嘉义市| 虹口区| 高邑县| 娱乐| 定日县| 太白县| 邵东县| 阳谷县| 无为县| 陇南市| 漯河市| 梅河口市| 历史| 南安市| 天气| 平和县| 彭阳县| 南平市| 沙坪坝区| 青龙| 丽水市| 永丰县| 濮阳县| 越西县| 大英县| 永善县| 拉萨市|