单据前面补零的优化实现方法

来源:互联网 发布:医疗软件开发公司 编辑:程序博客网 时间:2024/04/24 17:44

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