JAVA生成流水号,补齐位数

开发中总是遇到要求后端根据已有数据生成流水号或者数据编号需求,烦不胜烦,下边是提取的补位方法

1. 根据已添加的编号生成新标号

设:现有数据20条,期间未删除过数据,编号由000001开始至000020结束,现重新插入一条数据,故新生成编号应是:000021 由于数据不能直接做加减,需要转为数字之后再增加(哪怕是从数据库直接做 filed + 1操作,最终的出来的结果是21 而非000021),所以需要对编号补位后再保存,方法如下:

	/**
     * 左侧补位
     * totalLength 数值等于编号总长度,假如编号前加有字母的还需要再单独处理字母
     * 输入:number=11,totalLength = 5
     * 输出: 00011
     *  不想补0时可以将百分号后的0换成需要补充的字符
     * @param number      需要补位的编号
     * @param totalLength 需要补位的总长度
     * @return 返回补位后的数据
     */
	public static String padLeftZero(int number, int totalLength) {
        return String.format("%0" + totalLength + "d", number);
    }
    
 	/**
     * 右侧补位
     * 输入:number=11,totalLength = 5
     * 输出: 11000
     * 
     * @param number      需要补位的编号
     * @param totalLength 需要补位的总长度
     * @return 返回补位后的数据
     */
    public static String padRightZero(int number, int totalLength) {
        return String.format("%-" + totalLength + "s", number).replace(' ', '0');
    }

以上方法均为自动补充数字0,如需自定义补充时则需要对方法进行修改:

2. 自定义补充

	/**
     * 左侧补位自定义字符
     *
     * @param number      需要补位的编号
     * @param totalLength 需要补位的总长度
     * @return 返回补位后的数据
     */
    public static String padLeftCustom(int number, int totalLength) {
        return String.format("%" + totalLength + "s", number).replace(' ', 's');
    }
    
	/**
     * 右侧补位自定义字符
     *
     * @param number      需要补位的编号
     * @param totalLength 需要补位的总长度
     * @return 返回补位后的数据
     */
    public static String padRightZero(int number, int totalLength) {
        return String.format("%-" + totalLength + "s", number).replace(' ', '0');
    }

好啦,希望对你可以有帮助!

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值