少年阿賓

          那些青春的歲月

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          //這里面主要是由于銀聯(lián)的手機(jī)支付用到了一個(gè)付款的轉(zhuǎn)換方式問(wèn)題,當(dāng)調(diào)用支付寶付款的時(shí)候,比如一分錢格式就是我們普通用的格式:0.01,而銀聯(lián)確要把格式轉(zhuǎn)化為000000000001(銀聯(lián)要求是12位)這種格式的,最后一位是分,然后向前依次是角,元,十元,百元,相信不用我說(shuō),你已經(jīng)懂了吧。所以這里就需要一個(gè)轉(zhuǎn)換,為了應(yīng)對(duì)像1000,1000.00,1000.0這種傳過(guò)來(lái)的格式的數(shù)據(jù),特做一下轉(zhuǎn)換,然后傳給銀聯(lián)進(jì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ù)點(diǎn)后面有一位小數(shù)點(diǎn)的情況
          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ù)點(diǎn)后面有兩位小數(shù)點(diǎn)的情況
          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) 評(píng)論(0)  編輯  收藏 所屬分類: Java內(nèi)部類JavaEnum
          主站蜘蛛池模板: 恩施市| 漯河市| 安泽县| 富顺县| 眉山市| 莱阳市| 海口市| 屏南县| 油尖旺区| 星子县| 兰西县| 伊春市| 襄垣县| 黄浦区| 微博| 凤山县| 十堰市| 甘南县| 景谷| 临沧市| 云和县| 古浪县| 马尔康县| 阿拉善左旗| 沁源县| 平原县| 梁河县| 西青区| 阳谷县| 凤冈县| 涡阳县| 越西县| 黔南| 葫芦岛市| 循化| 青河县| 阿瓦提县| 长海县| 平顺县| 吴旗县| 石林|