一般我们开发的软件对有单据的,一般都有个序列号的要求。如果前面不够的则要补零。比如需要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不需要修改代码只需要修改静态常量就可以了。避免维护时修改代码带来新的问题等。