1 判断list集合不能为空:
CollectionUtils.isEmpty(list)
list == null || list.isEmpty()
2 金额格式转换并赋值:
BigDecimal fenTyuan = new BigDecimal("100");
transLogInfo.setTransFee(new BigDecimal(result.getString("mer_fee")).divide(fenTyuan));
divide除法
3
3.1 金额 movePointLeft
public BigDecimal movePointLeft(int n)
方法返回一个BigDecimal,它等效于将该值的小数点向左移动n位
举例:transLogInfo.setTransAmount(new BigDecimal(pay_amount).movePointLeft(2));
异常:ArithmeticException - 如果刻度溢出
3.2 金额 四舍五入(损失精度)
BigDecimal ratioDec = new BigDecimal(ratio).setScale(2, BigDecimal.ROUND_HALF_UP);
说明:字符串转化为两位小数的,并做金额的四舍五入
RoundingMode.CEILING:取右边最近的整数
RoundingMode.DOWN:去掉小数部分取整,也就是正数取左边,负数取右边,相当于向原点靠近的方向取整
RoundingMode.FLOOR:取左边最近的正数
RoundingMode.HALF_DOWN:五舍六入,负数先取绝对值再五舍六入再负数
RoundingMode.HALF_UP:四舍五入,负数原理同上
RoundingMode.HALF_EVEN:这个比较绕,整数位若是奇数则四舍五入,若是偶数则五舍六入
4 常用正则表达式判断
Pattern.matches("^[A-Za-z0-9]{15}$",head.getMerc_id());// 字母和数字并要求15位长度
1》/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/ //邮箱:
2》/^(\w)+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$/
3》/^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/
身份证号:/^[1-9](\d{16}|\d{13})[0-9xX]$/
手机号码:/^1[3|5|8][0-9]\d{8}$/
电话号码:/^((0\d{2,3})-)(\d{7,8})/
正则匹配 Pattern.matches("^P03|P04|P05|P10$",tradeCode) jdk1.8/ajva/util/regex/Pattern