首页 > 代码库 > 针对单位的xxx编号累加1的方法

针对单位的xxx编号累加1的方法

  我们生活中,可能会经常遇到xxx编号,例如员工出差借款可能有借款编号,签订合同会有合同编号,项目入库会有项目编号等,这些编号一般来说是有一些英文单词跟数字组成,例如:某个合同编号为:“bj0020150115026”,当我们签订下个合同的时候,编号就为:“bj0020150115026”,原因很简单把最后的数字加1就可以了,由于这个合同编号类型肯定是字符串格式的,而且其中还有非数字"bj"这样的单词,微软没有给我们提供这样的操作符,这时候需要我们人为的处理这个字符串以达到让这个字符加1的效果。

  以这个合同编号为例,我们可以把合同编号拆成两个字符串“bj”、"0020150115026",其中“bj”为常量,可以保留,我只需把后面的数字字符串进行处理即可,我们首先会想到把这个字符串转换成整型数据或者Double数据等可以进行计算的类型,但是我们通过转换"0020150115026"为整型后,变成了20150115026,加上1之后变为20150115027,前面的两个0就没有了,这时候我们需要通过用0来补位。到底要补几个0呢,字符串处理之前“0020150115026”的长度为13,经过转换整型再加1后的字符串长度为11,用之前的字符串长度减去处理后的字符串长度结果等于2,这时候我们需要补两个0即可,

代码如下:

private static string GetNewCode(string code){    if (string.IsNullOrEmpty(code))        return "";    string newCode = Funlayer.Transform.Str(Funlayer.Transform.Int(code) + 1);    int len = newCode.Length;    string Num = "bj";    if (len < code.Length)    {        for (int i = 0; i < code.Length - len; i++)        {            Num += "0";        }    }    return Num + newCode;}
其中Funlayer为自己写的一个处理数据的公共方法,用微软的.toString()跟Convert.toInt32()也可以,这样我们就把一个字符串处理好了

针对单位的xxx编号累加1的方法