后两位自增,若增到99则从0A开始自增,通过ASCII码值自增

后端生成id,后两位自增,若增到99则从0A开始自增,通过ASCII码值自增

 /// <summary>
        /// 生成类型:通过ASCII码值,对字符串自增1
        /// </summary>
        /// <param name="lastId"></param>
        /// <returns></returns>
        public static string CreateId(string lastId)
        {
            string _newId = "";
            //截取后两位字符串
            string lastTwo = lastId.Substring(lastId.Length-2,2);
            //转化为ASCII码值
            int vIntChar = (int)lastId[lastId.Length - 1];
            int vIntCharLast = (int)lastId[lastId.Length - 2];
            //如果后两位最大99,新增id将99替换为0A,从字母开始排
            if (lastTwo == "99")
            {
                lastId=lastId.Remove(lastId.Length-2, 2);
                _newId=lastId.Insert(lastId.Length, "0A");
            }
            //如果最后一位是字母(A - Z)
            else if (65 <= vIntChar && vIntChar <= 90)
            {
                //取当前和下一位的ASCII码值转化为字符串
                string oldChar =((char)vIntChar).ToString();
                string newChar=((char)(vIntChar+1)).ToString();
                //进行替换(A替换为B)
                _newId = lastId.Replace(oldChar, newChar);
                vIntChar++;
                //如果最后一位超过字母Z
                if (vIntChar == 91)
                {
                    //将最后一位变为A,倒数第二位自增:(0Z增为1A)
                    vIntChar = 65;
                    vIntCharLast++;
                    lastId = lastId.Remove(lastId.Length - 2, 2);
                    _newId = lastId.Insert(lastId.Length, (((char)vIntCharLast).ToString()+(char)vIntChar).ToString());
                }
            }
            else
            {
                //正常字符自增
               string  _newlastTwo = (long.Parse(lastTwo) + 1).ToString("D2");
                lastId = lastId.Remove(lastId.Length - 2, 2);
                _newId = lastId.Insert(lastId.Length, _newlastTwo);
            }
            return _newId;
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值