java字符串长度不够前面补0。(自定义流水号)

通常来说,流水号一般用uuid创建最为简便。但是,有的时候需要自定义流水号,并且按照自己的规则创建或组装一个字符串来充当流水号。比如:

当文件需要分包发送给对方时,为了告诉对方我一共分了几个包,现在发送的是第几个包。于是我们自定义了一个这样的规则:

00040001(“0004”代表我把该文件分了4个包,“0001”表示我现在给你发送的是第一个包,如果文件分了4个包,那么最后一位应该是1-4)

 

我的做法如下:

先定义一个变量STR_FORMAT,然后再写一个方法,专门来补0.因为文件一共分多少个包我是事先就计算出来了

private static final String STR_FORMAT = "0000";

//格式化流水号
public static String formatSerialNumber(int cycleIndex){
     DecimalFormat df = new DecimalFormat(STR_FORMAT);
     return df.format(cycleIndex);
}

 

然后在main方法中一行代码就搞定:

String    serialNumber=formatSerialNumber(cycleIndex);//cycleIndex是我计算得出的文件包个数

 

那么,后边“0001”就更简单了,只需要在发送的时候定义一个变量  int i=1;然后同样调用formatSerialNumber()方法就可以了。或者可以调用以下方法也是可以实现补0的:

public static String AddZero(String number,int length){

//number是第几个包(1,2,3,4),length是流水号的位数,这里是后半部分的4位长度,length为4
    while (number.length() <= length)
      number= "0" + number;
    return number;
}

 

本人的一点小笔记,希望对大家有帮忙!

 

 

你可能感兴趣的:(java基础)