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

    技术2022-05-11  2

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


    最新回复(0)