java 枚举 静态_Java 静态内部类和枚举(银联支付)
//这里面主要是由于银联的手机支付用到了一个付款的转换方式问题,当调用支付宝付款的时候,比如一分钱格式就是我们普通用的格式: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
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
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);
}
}
java 枚举 静态_Java 静态内部类和枚举(银联支付)相关推荐
- java 7种枚举类型_Java中的枚举类型
枚举类比较用 == 还是 equals,有啥区别? java 枚举值比较用 == 和 equals 方法没啥区别,两个随便用都是一样的效果.因为枚举 Enum 类的 equals 方法默认实现就是通过 ...
- java中的枚举类_java中的枚举类型
java中为了对参数类型使用限定,引入了泛型,实现了在编译期对参数类型是否合法的判断.同样,java为了对参数的值的限定,引入了枚举类,实现了在编译期对参数的值是否合法的判断. 首先我们用自定义类的方 ...
- java 枚举迭代_Java中的枚举和迭代器之间的区别
java 枚举迭代 Java中的枚举与迭代器 (Enumeration vs Iterator in Java) Here, we will see how Enumeration differs f ...
- java如何创建枚举类型_Java如何创建枚举类型?
枚举是命名常量的列表.每种最常用的编程语言都支持此功能.但是在Java中,从5.0版开始正式支持它.在Java编程语言中,枚举定义了一个类类型.因为枚举是一个类,所以它可以具有构造函数,方法和实例变量 ...
- java 动态更新_java动态更新枚举类
工作中遇到需要对枚举类的值进行动态更新 手动改不现实也不方便 现记录下来方便以后学习使用 1.在工程utils包中添加动态更新枚举类得工具类(根据自己得项目,放到指定位置调用就可以) 2.一开始陷入了 ...
- java 枚举常量_java中的枚举类和常量类区别在哪儿?
假如有一笔业务需要审核,审核状态分:未审核,审核中,审核通过,审核不通过.我们在程序里是否可以直接这么写: if(state==1){//1代表未操作 //操作 }else{ //...... } 将 ...
- java synchronized静态_Java中Synchronized的用法(简单介绍)
简单介绍 synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调 ...
- java 内存 静态_java中内存分配以及static的用法(转)
JAVA能够实现跨平台的一个根本原因,是定义了class文件的格式标准,凡是实现该标准的JVM都能够加载并解释该class文件,据此也可以知道,为啥Java语言的执行速度比C/C++语言执行的速度要慢 ...
- java 内存 静态_Java内存的 静态方法和实例方法的区别及使用场景
注意:变量指基本数据类型非对象,局部变量不能被静态修饰 1.(静态)成员变量存放在data segment区(数据区),字符串常量也存放在该区 2.非静态变量,new出来的对象存放在堆内存,所有局部变 ...
最新文章
- 序列化以及反序列化二叉树
- 如何在Java中使用QRGen创建QRCode
- Linux Basics command
- Mysql之数据库锁(表锁和行锁)详解
- C语言和C++中Struct区别
- Ubuntu服务器修复,ubuntu – 服务器攻击,如何修复它
- 诺基亚n8系统更新服务器模式,新年新版本 诺基亚N8最新固件PR1.1亮相
- CCF推荐期刊会议(A类)
- python excel 填充颜色_pandas to_excel 添加颜色操作
- 使用PowerShell管理Exchange Server 2016
- 信用评分模型详解(下)之 信用评分系统搭建
- Java大作业——手把手教你写俄罗斯方块
- 为方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息......
- 时间片轮询+状态机实现裸机多任务
- 软件测评师之申请补贴(六)
- 福布斯08中国名人榜揭晓 “许三多”排名38
- sed全文字符串替换
- 光通量与辐射通量之间的换算
- 期望值、方差、协方差、相关系数,numpy 计算均值、方差、协方差,相关系数
- 【android】解决android SDK 模拟器 运行缓慢
热门文章
- MODIS数据批量裁剪并合成月尺度数据:以MOD13A1为例
- 约瑟夫环问题(用数学方法推出计算公式)
- mysql实现postgres中pg_size_pretty函数
- 线上事故的善后——事故通告
- 卉原中学2021年高考成绩查询,卉原中学2021年宿舍条件
- 小米手机、华为手机、一加手机、小米手环NFC刷门禁卡教程!
- error日志显示不全的问题,-XX:-OmitStackTraceInFastThrow
- 千篇一律的Python爬虫,大神精心总结的爬虫套路!
- 对接天猫接口之获取宝贝主图和购买宝贝对应的SKU图片(Java实现)
- 经典论文翻译--Minimum Snap Trajectory Generation and Control for Quadrotors