Инкрементирование строки

 
0
 
.NET
ava
WingfirE | 28.12.2016, 11:16
Всем привет. Можете помочь написать метод Инкриминирующий строку, принимающую в качестве аргумента в виде массива типа char. Пример результата:
00000007 - 00000008
SVA00001 - SVA00002
Ответы (1)
ava
a0730 | 29.12.2016, 09:13 #
Попробуй так:

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(IncrementString("00000007"));
            Console.WriteLine(IncrementString("SVA00001"));
            Console.ReadLine();
        }
        private static string IncrementString(string s)
        {
            char[] a = s.ToCharArray();
            Array.Reverse(a);
            int cf = 0;
            bool x = true;
            for (int i = 0; i < a.Length;++i )
            {
                if( i > 0 && cf == 0 )
                {
                    break;
                }
                char c = a[i];
                if (char.IsDigit(c))
                {
                    int k = Convert.ToInt16(c) - 48;
                    if (i == 0)
                    {
                        k++;
                    }
                    else
                    {
                        k += cf;
                    }
                    cf = k / 10;
                    a[i] = Convert.ToChar(48 + k % 10);
                }
                else
                {
                    break;
                }
            }
            Array.Reverse(a);
            return new string(a);
        }
    }
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
  a0730   WingfirE
advanced
Отправить