一般我们开发的软件对有单据的,一般都有个序列号的要求。如果前面不够的则要补零。比如需要7位数的编号如果是一号则为0000001。对其编程有许多方法但是怎么实现比较好呢?
1 下面首先看一个我Delphi下的实现方法:首先取得字符串的长度,一般可以从数据库等地方读出。然后我们取其长度可以Trim一下去掉空格。然后使用case语句进行添加。
Len:=Length(str);
case Len of //根据字符串长度补充值
1:Result:='000000'+Str;
2:Result:='00000'+Str;
3:Result:='0000'+Str;
4:Result:='000'+Str;
5:Result:='00'+Str;
6:Result:='0'+Str;
7:Result:=Str;
end;
2 当然也可以使用if else语句不过这就显得更加麻烦了点。
3 使用for语句来实现就比较好了(我以前的SubLead说的,我学来了)。下面就来看看Java代码的实现:
private static final int PTNR_CORP_NAME_LENGHT = 7; //类的私有变量
int varI = 0; //成员函数的
int varJ = 0;
String[] strPTNR_CORP_NO=""; //需赋值的变量
for(varI=0;varI<strPTNR_CORP_NO.length;varI++)
{
if (strPTNR_CORP_NO[varI] != null && !strPTNR_CORP_NO[varI].trim().equals(""))
{
for(varJ=PTNR_CORP_NAME_LENGHT; varJ>strPTNR_CORP_NO[varI].length(); varJ--)
{
strPTNR_CORP_NO[varI] = "0" + strPTNR_CORP_NO[varI];
}
}
}
使用上述的好处使得可维护性提高了。如果将7修改为8不需要修改代码只需要修改静态常量就可以了。避免维护时修改代码带来新的问题等。