java生成自增编号数字的问题教程方法

文章介绍了如何在Java中生成自增的编号,包括从数据库查询最大编号,然后递增并按指定格式填充。提供了处理设备编号的示例代码,当设备编号为空或不为空时如何自增并保持前导零。主要使用了Integer.parseInt和String.format方法。
摘要由CSDN通过智能技术生成

java生成自增编号数字
最近有业务需求,编号自增。

1、查询数据最大编号,该字段为字符串

SELECT max(no_value+0) FROM `jm_xx`

2、编号+1,递增后按格式补齐

public String getOldNum(){
        String oldNum ="00000001";
        String maxOldNum = jmDocMapper.findMaxOldNum();
        if(null !=maxOldNum){
            int i = Integer.parseInt(maxOldNum)+1;

%nd 输出的整型宽度至少为n位,右对齐,%8d即宽度至少为8位,位数大于8则输出实际位数,0表示用0补齐

            oldNum = String.format("%08d", i);
        }
    return oldNum;
}

java生成一定规则递增编号
项目需求中有时需要生成一定规则递增编号。

例如生成设备编号:设备类型+五位编号(从1开始,不够前补0),也就是SYXH000001/SYXH00002/SDOI00001类似这样。

那么如何处理000001自增1变为000002呢?

实现代码:

package com.lyf.test;
public class Test2 {
    
    /**
     * 生成规则设备编号:设备类型+五位编号(从1开始,不够前补0)
     * 
     * @param equipmentType
     *                 设备类型
     * @param equipmentNo
     *                 最新设备编号
     * @return
     */
    public static String getNewEquipmentNo(String equipmentType, String equipmentNo){
        String newEquipmentNo = equipmentType + "00001";
        
        if(equipmentNo != null && !equipmentNo.isEmpty()){
            int no = Integer.parseInt(equipmentNo);
            int newEquipment = ++no;
            newEquipmentNo = String.format(equipmentType + "%05d", newEquipment);
        }
        
        return newEquipmentNo;
    }
    public static void main(String[] args) {
        String equipmentNo = Test2.getNewEquipmentNo("SYXH", "00032");
        System.out.println("生成设备编号:" + equipmentNo);
    }
}

运行结果:

生成设备编号:SYXH00033

从上面代码中可以看到,首先我们默认了一个初始设备编号,当传入方法的最新设备编号为null或是空时将使用。

如果传入了数据库中最新设备编号,将首先使用Integer的parseInt()方法返回十进制整数,这样就可以对其自增1。

最后通过String的format()方法进行字符串格式化返回就可以了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q shen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值