1.记录一下字符串循环加一的解决办法。
2.需求:按照“ACH02100001”的格式进行循环添加,格式为自动加1
3.想法:将数据库里面的值进行字符串截取后五位,然后循环加一,最后和前面六位进行拼接。
4.实现
第一步:数据库截取后五位。
@Select("select max(right(t.custom_no,5)) from pay_custom_info as t")
String getPayCustomByMax();
截取最大值的后五位---》00001
第二步:后台进行逻辑处理,最后拼接。
//查询出账号后五位
String onNum = payCustomInfoMapper.getPayCustomByMax();
//转换类型
int b = onNum.length();
String ad = "";
if(onNum.equals(0)){
onNum="00001";
}else{
//加1再循环装载值
int num = Integer.parseInt(onNum);
num++;
ad =String.valueOf(num);
int a = ad.length();
while(a<b){
ad = "0"+ad;
a++;
}
}
//前缀拼接生成商户编号
StringBuilder left = new StringBuilder("ACH021");
String lefts = left.append(ad).toString();
首先获取最后五位,之后获取当前值的长度,因为不同类型的关系,导致了不能直接用int和integer进行转化,最后判断进行操作,最后得到你想要的结果。
也许我写的比较繁琐,希望大神有简易方法指教噢。