C#实现类似Excel自动填充单元格,后面的数字累加

class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Next("abc123def345ghi"));
            Console.Read();

        }

        private static string Next(string s)
        {
            if (!isNumber(s.Substring(s.Length-1,1)))
                s = s + "0";
            MatchCollection coll = Regex.Matches(s, @"\d+");
            Match m = coll[coll.Count - 1];

            return s.Substring(0, m.Index) + NextNum(m.Value);
        }
        private static string NextNum(string s)
        {
            char[] cs = s.ToCharArray();
            for (int i = s.Length - 1; i >= 0; i--)
            {
                if (!NextChar(ref   cs[i])) break;
            }
           
            string re = new string(cs);
            if (Int32.Parse(re) == 0)
                re = "1" + re;
            return re;
        }
        private static bool NextChar(ref   char c)
        {
            string p = "01234567890123456789";
            int n = p.IndexOf(c);
            c = p[(n + 1) % 10 + 10 * (n / 10)];
            return (n == 9 || n == 19);
        }
        public static bool isNumber(string str)
        {
            Regex r = new Regex(@"^\d+(\.)?\d*$");
            if (r.IsMatch(str))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

 

转载于:https://www.cnblogs.com/xiaofengfeng/archive/2012/08/31/2665712.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值