как при переводе строки в число сохранить нули перед цифрами? C#

программа запрашивает у нас диапазон от шестизначного числа до шестизначного числа и если пользователь ввел число меньше 6 знаков, то вперед ему дописываются нули

например ввели диапазон от 12 до 666666

и программа нам выведет 000012 666666

я это сделал, только есть проблема, мне нужно его перевести в числовое значение, а при переводе в число нули убираются и получается 12 666666, как мне сохранить нули перед цифрой???

( если вы задались вопросом зачем вообще через стринг это делать, то такое задание мне дал учитель, чтобы разобраться с методами строк )


Console.WriteLine("введите диапазон через пробел");
  string f = Console.ReadLine();

  int g = f.IndexOf(' ');
  int gg = f.LastIndexOf(' ');
  string a1 = f.Substring(0, g);
  string a2 = f.Substring(gg);
  a1 = a1.PadLeft(6, '0');

  Console.WriteLine(a1);           
  int kk = Int32.Parse(a1);
  int kk1 = Int32.Parse(a2);

  Console.WriteLine(kk+" "+kk1);



Ответы (2 шт):

Автор решения: Ingvar

Как уже сказано в комментариях - никак. Но при выводе воспользуйтесь форматированием:

string.Format("{0:00000}", kk)

при выводе дополнится нулями до 5 знаков, например:

00001 00999 76576

→ Ссылка
Автор решения: InterceptorTSK

Справедливости ради, string.Format() - запредельно "тугая" штуковина, и работает весьма медленно. Иногда нужно быстрее.

Абстрактный (алгоритмический) способ следующий:

  1. Найдите длину числа, и быстрые способы нахождения длины числа - есть.
  2. Посмотрите на найденную длину числа, если длина числа меньше (равна) вашему диапазону, то возвращайте строковое представление числа.
  3. НО, если длина числа больше вашего диапазона, то создайте буфер, например stackalloc, туда запихивайте начальные нули, а затем туда же строковое преставление числа.
  4. Возвращайте строку с пункта [2] или [3].
→ Ссылка