序号要求:
1.位数5位
2.以C0001开始,数字部分依次递增,如C0002,C0003...;当序号至C9999时,下一序号字母按字母表递增变为D0001,依次类推;当序号为Z9999时,下一序号变为AA001,然后数字部分递增,如AA002,AA003...;当序号为AA999时,下一序号变为AB001;依次类推;当序号ZZ999时,下一序号变为AAA01,AAA02...依此类推变为ZZZZ9时,返回为空;

解决方案 »

  1.   

    用SubString把第一位和后4位区分开
    然后将后4位转成int型,自增1
    如果是10000,就把第一位字母也往后移动一位
    如果小于10000, 用 .ToString().PadLeft(4,'0')拼接到首字母后面
      

  2.   

    把id分割成字母、数字2部分。
    如果数字可以+1,+1直接返回。
    如果数字不可以+1,处理字母部分。
    char[] idc = id.ToCharArray();
    将字母串,分割成一组char
    如果最后一个字母不是Z,将最后一个字母转成int ASSIC码,+1后转回字母,同时int部分也得改变(01、001还得经行处理判断)
    如果最后一个字母是Z,判断前一个字母(还得判断是不是Z,递归上去),然后处理同上大概想想是这样的吧,注意字母大小写ASSIC码不同
      

  3.   

    GUDI就行,弄点算式直接判断!
      

  4.   

    TO:lienguo,fisher_85 估计题目没看清?
    TO:zhujiawei7,我将会试试你说的方法,ID分成数字部分和字母部分先前也考虑过,字母和数字位数一个动态的感觉有点复杂,就没有再深入考虑;
    TO:lld31,GUDI 是什么?如何实现
      

  5.   

    无非就是任意进制进位http://topic.csdn.net/u/20110705/19/5b6bcbfe-ff78-4d7f-b5a0-1c8bfba5b694.html看我的回答。
      

  6.   

    TO:caozhy,刚看了你的代码,感觉不太符合我的需求,目前得到应该不仅仅是打印出所有的序号,可以理解是通过当前序号与规则得到下一序号,如当前序号:C0001,得到的序号是C0002;如果当前号是ZZ999,那么需得到下一序号为:AAA01;
      

  7.   

    思路是一样的。如果你非要按照你的规则,就把我的代码修改修改。不过明显你的规则过于复杂。ZZ999后面明显是ZZA99嘛。
      

  8.   

    呵呵,对,我现在就是在寻求思路的。ZZ999后面不是ZZA99而是AAA01,仅数字递增;当到最大值时,转字母递增,数字和字母位不会一起递增,这个是与进制转换较大的区别。因此考虑zhujiawei7兄弟关于分割数字部分和字母部分建议。
      

  9.   

    挺像熵。。最终归于沉睡 ZZZZZ