目录

  • 前言
  • 一、需求描述
  • 二、代码实现
    • 1.代码实现Demo
    • 2.代码解释
  • 三、String.format()方法
  • 总结

前言

Java 中如何生成一定规则递增编号?


一、需求描述

项目需求中有时需要生成一定规则递增编号。例如生成设备编号:设备类型+五位编号(从1开始,不够前补0),也就是 SYXH000001 / SYXH00002 / SDOI00001 类似这样。
那么如何处理 000001 自增1变为 000002 呢?

接下来我们直接上代码!

二、代码实现

1.代码实现Demo

public class Test {/*** 生成规则设备编号:设备类型+五位编号(从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);// 最新设备编号自增1int newEquipment = ++no;// 将整数格式化为5位数字newEquipmentNo = String.format(equipmentType + "%05d", newEquipment);}return newEquipmentNo;}public static void main(String[] args) {String equipmentNo = Test.getNewEquipmentNo("SYXH", "00032");System.out.println("生成设备编号:" + equipmentNo);}}

运行结果:

生成设备编号:SYXH00033

2.代码解释

从上面代码中可以看到,首先我们默认了一个初始设备编号,当传入方法的最新设备编号为 null 或是空时将使用。
如果传入了数据库中最新设备编号,将首先使用 IntegerparseInt() 方法返回十进制整数,这样就可以对其自增1。
最后通过 Stringformat() 方法进行字符串格式化返回就可以了。

三、String.format()方法

我们重点来看 String.format() 方法
在 Java 中,String.format() 方法用于格式化字符串。在格式化字符串时,常常需要将数值类型的数据(如整数和浮点数)转换成字符串,同时还需要指定格式化后的字符串的样式和长度。%05dString.format() 方法中用于将整数类型格式化成指定长度的字符串类型的参数之一。

  • % 是格式化输出的标记符。
  • d 表示指定参数的类型为整数类型。
  • 0 表示当数字长度不足要求时左侧补0。
  • 5 表示最终格式化后的字符串最少包含5个字符。如果数字长度不足5个字符,则在左侧补0,以达到最少包含5个字符的要求。

例如,以下是一个使用 String.format() 方法将一个整数格式化为5位数字的示例:

int num = 123;
String formattedNum = String.format("%05d", num);
System.out.println("The formatted number is: " + formattedNum);

在上面的示例中,数字123在进行格式化时,因为只有3个字符,不足5个字符,所以通过左侧补0的方式,将数字格式化为了 “00123”。


总结

上述简单实现了使用 Java 生成一定规则递增编号,是在已知的库中最新编号自增1。只是一个简单思路,供大家参考。

Java生成一定规则递增编号相关推荐

  1. Java生成一定规则递增编号 -----生成客户编号(A0001-ZZZZZ9999)工具类

    代码片段 public class MemberNumberUtil {private static List<String> ALPHA = Arrays.asList("A& ...

  2. java生成密码规则 形似校验规则

    最近接到一个需求,按照一定的规则自动生成密码,并且要校验密码的规则和形似规则,网上搜了一下没找到我想到的形似规则处理方式,只能自己动手尝试写写了. 密码规则: 口令至少由8-20位大写字母.小写字母. ...

  3. 使用mybatis自动生成指定规则的编号

    一.要求 1.如果表中还未有菜单,添加一级菜单,编号为:'300' 2.继续添加一级菜单,编号为:一级菜单最大编号 + 1,如'301','302','303' 3.添加子级菜单:编号 = 父级编号 ...

  4. 工银e生活开发脱坑日志(9)JAVA版的SDK自动生成msgId,PHP如何生成消息通讯唯一编号msgId

    工行开发中msgId,是消息通讯唯一编号. JAVA中,SDK自动生成msgId,具体规则如下(来源工行支持中心): SDK支持自动生成msgId.以数据类型API为例,只需在SDK中调用时将clie ...

  5. php 工行e生活登录,工银e生活开发脱坑日志(9)JAVA版的SDK自动生成msgId,PHP如何生成消息通讯唯一编号msgId...

    工行开发中msgId,是消息通讯唯一编号. JAVA中,SDK自动生成msgId,具体规则如下(来源工行支持中心): SDK支持自动生成msgId.以数据类型API为例,只需在SDK中调用时将clie ...

  6. PHP版本的自动生成有规则的订单号(或编号)

    <?php /** * PHP版本的自动生成有规则的订单号(或编号) * 生成的格式是: 20130103000001 前面几位为当前的日期,后面6位为系统自增长类型的编号 * 原理: * 1. ...

  7. java生成订单编号

    随着项目用户数量的扩大,高并发随之而来.那么如何在当前系统生成唯一编号呢? 一台数据库可以用自增,集群呢?当然也有随之的解决方案,但是最好的还是在项目生成了唯一的编号再插入到数据库.而不是数据库插入了 ...

  8. Java根据当前时间生成对于的唯一编号(代码案例)

    [辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...

  9. 金蝶k3单据编码规则_金蝶K3 Wise 用SQL生成单号(单据编号)及单据内码(单据ID)

    一生成各种单据的编号 详细实现过程参见存储过程p_BM_GetBillNo ICBillNo表存放所有单据的编码信息,其中FBillID用于p_BM_GetBillNo的第一个参数 以采购申请单为例, ...

最新文章

  1. 2015年度互联网安全报告发布 移动支付成重灾区
  2. css中单位px和em,rem的区别
  3. mysql与hive2.1.1安装和配置
  4. java实现多级菜单(java递归)方法二
  5. centos sftp客户端 c 源码_Redis第3课:如何使用 Redis客户端
  6. JAVA中isEmpty、null、的区别
  7. Hadoop HDFS 的 Java API 操作方式
  8. vb.net json上传服务器_vue项目编译后自动上传,告别繁琐的操作
  9. STP-16-根防护,BPDU防护和BPDU过滤
  10. Win10的Linux子系统Ubuntu安装图形界面
  11. 太强了哎 突然发现一个网安神器~
  12. python 实现桌面壁纸自动更换
  13. Linux文本编辑工具
  14. java 类的方法设计_设计问题:Java类与单方法OK?
  15. 铁夫破词之英文名字的由来(总结)
  16. 自己开发的瓦片地图下载器,免费绿色
  17. 自动化运维saltstack(资源)
  18. ubuntu终端中返回上一次访问的目录
  19. Windows安装及卸载CUDA
  20. 基于ZYNQ的片上系统(Soc)简介(一)

热门文章

  1. 开关三极管,加速电容的分析
  2. 等价关系、等价类与划分
  3. canvas读取跨域图片像素失败 Failed to execute getImageData The canvas has been tainted by cross-origin data
  4. 华钜同创:亚马逊开店提高产品复购率的七大方法
  5. 身为程序员碰到最奇葩的需求是怎样的?
  6. 王世琦个人项目(贪吃蛇)
  7. 漏洞命名规则及其正则表达式判断
  8. 关于windows程序显示鼠标所在坐标
  9. linux安装分区方案推荐
  10. Microsoft Visio 2013 设计E-R图和数据库模型图