首页 新闻 会员 周边 捐助

根据规则自动生成编码

1
悬赏园豆:200 [已解决问题] 解决于 2012-07-09 12:14

根据需求,自定义规则,生成相应的编码 : 如,XXXXYYYYZZZZ ,4个X就为4位数字(1001),YYYY前两位为字母,后两位为数字(ab12),ZZZZ为四位数字(0001,0002...)

我们很熟的主页 我们很熟 | 初学一级 | 园豆:18
提问于:2012-04-26 12:20
< >
分享
最佳答案
0

用一个函数,穷举出你所有的字母形式,然后将你传入的这个规则字符串转换为char数组,然后去循环这个数组,让数组中的每个字母都产生一个你想要的值,然后拼接起来,就可以了。

 /// <summary>
        /// 根据规则生成编码
        /// </summary>
        /// <param name="rule">规则字符串</param>
        /// <returns>返回编码字符串</returns>
        public string  GenCoding(string rule)
        {
            //转换为小写形式或全大写形式,视情况是否需要
            rule = rule.ToUpper();
            string returnRule = string.Empty;//定义返回的规则变量
            //如果都是XXXX-ZZZ-M-NN这种规则的,就分割来使用,建议使用这种规则的
            foreach (char item in rule.ToCharArray())
            {
               
                switch (item)
                {
                    case 'Z':
                        //doSomthing
                        //returnRule =生成的值
                        break;
                    case 'X':
                        //doSomthing
                        //returnRule =生成的值
                        break;
                        /*
                         ......
                         */
                    default:
                        break;
                }
            }
            return returnRule;
        }
收获园豆:100
az235 | 大侠五级 |园豆:8483 | 2012-04-27 08:51
其他回答(5)
0

没发现难点在哪儿呀,建议你先尝试 自己解决,解决过程中遇到难点了,把难点提出来,大家帮你。

收获园豆:10
玉开 | 园豆:8822 (大侠五级) | 2012-04-26 12:26
0

同意,通过截取和拼接字符串不就实现了,自己试着写一个方法就行

收获园豆:10
KivenRo | 园豆:1734 (小虾三级) | 2012-04-26 12:41
0

使用脚步首先你截取前两个是yyyy 然后都截取出来给赋值使用随机数,复制后在拼接成字符串返回就可以。 很简单的

收获园豆:20
张伟.... | 园豆:293 (菜鸟二级) | 2012-04-26 13:33
0

this.EcHumanResourcesInfo_BillNo.Value = GetRandomNum("" + strYear + "HR");

 

public string GetRandomNum(string letter)
        {
            string order = new Random().Next(100, 999).ToString();
            order = letter + DateTime.Now.ToString("yyMdHms") + order;
            return order;
        }

 

想要什么样的效果自己改吧

收获园豆:50
edsonwu | 园豆:146 (初学一级) | 2012-04-26 13:47
0

木有明白你的具体需求。

收获园豆:10
无之无 | 园豆:5095 (大侠五级) | 2012-04-26 13:50

就是封装一个方法, 根据不同的需求,处理不同的业务, 如XXXXYYYYZZZZ ,4个X就为4位数字(1001),YYYY前两位为字母,后两位为数字(ab12),ZZZZ为四位数字(0001,0002...) 最终生成一个字符串: 1001ab120001,下一条 1001ab120002... 假如需求变化了, XXXX-ZZZ-M-NN

XXXX如上, ZZZ(001-999); M为一个字母(A-I) NN为流水号 01,02,03...

支持(0) 反对(0) 我们很熟 | 园豆:18 (初学一级) | 2012-04-26 15:27

@net程序员11: 你的需求呢?也就是说你希望的这个函数的输入参数是什么?

支持(0) 反对(0) 无之无 | 园豆:5095 (大侠五级) | 2012-04-26 15:36

@笨笨蜗牛: 现在就是需要一种方案,能解决不同用户的需求, 怎么才能让不同的用户满足不同的需要, 最终得到的就是一段字符串

支持(0) 反对(0) 我们很熟 | 园豆:18 (初学一级) | 2012-04-26 17:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册