/***
* 按格式生成序号,如0001,0002...9999
* @param idx 序号号码
* @param scale 位数
* @return 按位数格式化的序号,如0019
*/
public static String buildSerial(int num,int scale){
//格式化的位数小于等于0则抛出参数异常
if(scale<=0)
throw new IllegalArgumentException("scale:"+scale);
//计算序列号的位数
int count=0;
int aIdx=num;
while((aIdx=aIdx/10)>0)
count++;
count++;
//序列号的位数大于格式化位数,或者序列号的值小于等于0时,抛出参数异常
if(count>scale || num<=0)
throw new IllegalArgumentException("idx:"+num);
//在序列前空出的位上添加0
StringBuffer buf=new StringBuffer(scale);
for(int i=scale-count;--i>=0;)
buf.append(0);
//添加序列号值
buf.append(num);
return buf.toString();
}