当前位置:编程学习 > C#/ASP.NET >>

求.NET序号算法

序号要求:
1.位数5位
2.以C0001开始,数字部分依次递增,如C0002,C0003...;当序号至C9999时,下一序号字母按字母表递增变为D0001,依次类推;当序号为Z9999时,下一序号变为AA001,然后数字部分递增,如AA002,AA003...;当序号为AA999时,下一序号变为AB001;依次类推;当序号ZZ999时,下一序号变为AAA01,AAA02...依此类推变为ZZZZ9时,返回为空; --------------------编程问答-------------------- 有人弄过类似的吗 --------------------编程问答-------------------- 很简单嘛  字符A到Z都是数值   判断下就行了 --------------------编程问答-------------------- 用SubString把第一位和后4位区分开
然后将后4位转成int型,自增1
如果是10000,就把第一位字母也往后移动一位
如果小于10000, 用 .ToString().PadLeft(4,'0')拼接到首字母后面 --------------------编程问答-------------------- 把id分割成字母、数字2部分。
如果数字可以+1,+1直接返回。
如果数字不可以+1,处理字母部分。
char[] idc = id.ToCharArray();
将字母串,分割成一组char
如果最后一个字母不是Z,将最后一个字母转成int ASSIC码,+1后转回字母,同时int部分也得改变(01、001还得经行处理判断)
如果最后一个字母是Z,判断前一个字母(还得判断是不是Z,递归上去),然后处理同上

大概想想是这样的吧,注意字母大小写ASSIC码不同 --------------------编程问答-------------------- GUDI就行,弄点算式直接判断! --------------------编程问答-------------------- TO:lienguo,fisher_85 估计题目没看清?
TO:zhujiawei7,我将会试试你说的方法,ID分成数字部分和字母部分先前也考虑过,字母和数字位数一个动态的感觉有点复杂,就没有再深入考虑;
TO:lld31,GUDI 是什么?如何实现 --------------------编程问答-------------------- 无非就是任意进制进位

http://topic.csdn.net/u/20110705/19/5b6bcbfe-ff78-4d7f-b5a0-1c8bfba5b694.html

看我的回答。 --------------------编程问答-------------------- TO:caozhy,刚看了你的代码,感觉不太符合我的需求,目前得到应该不仅仅是打印出所有的序号,可以理解是通过当前序号与规则得到下一序号,如当前序号:C0001,得到的序号是C0002;如果当前号是ZZ999,那么需得到下一序号为:AAA01; --------------------编程问答-------------------- 思路是一样的。如果你非要按照你的规则,就把我的代码修改修改。

不过明显你的规则过于复杂。ZZ999后面明显是ZZA99嘛。 --------------------编程问答-------------------- 全天下的要求多了去了。我不可能为每个问题都义务编写代码,只能根据典型情况写一些,目的也不是让你直接拿来用,只是给你思路一点启发而已。 --------------------编程问答-------------------- 呵呵,对,我现在就是在寻求思路的。ZZ999后面不是ZZA99而是AAA01,仅数字递增;当到最大值时,转字母递增,数字和字母位不会一起递增,这个是与进制转换较大的区别。因此考虑zhujiawei7兄弟关于分割数字部分和字母部分建议。 --------------------编程问答-------------------- 这个规则确实过于复杂,挺变态的,由客户提出整人的规则的...而仅仅是为了序号唯一...
但是还是必须解决,因此求教是否能需求一种适合思路和算法满足这种需求的,目前按分割数字部分和字母思路进行测试中... --------------------编程问答-------------------- 挺像熵。。最终归于沉睡 ZZZZZ。。。 --------------------编程问答-------------------- 啊哦 膜拜 算法大牛出现.. --------------------编程问答-------------------- 蛮简单的,看7楼那个思路就行
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,