Подтвердить что ты не робот

Формат строки в .NET: преобразовать целое число в строку фиксированной ширины?

У меня есть int в .NET/С#, который я хочу преобразовать в специально отформатированную строку.

Если значение равно 1, я хочу, чтобы строка была "001".

10 = "010".

116 = "116".

и т.д...

Я оглядываюсь на форматирование строк, но пока ничего не добился. У меня также не будет значений более 999.

4b9b3361

Ответ 1

Посмотрите PadLeft.

ex:

int i = 40;

string s = i.ToString().PadLeft(3, '0'); 

s == "040"

Ответ 2

Самый простой способ сделать это - использовать встроенные функции .NET для этого:

var r = 10;
var p = r.ToString("000");

Нет необходимости в циклировании или дополнении.

Ответ 3

Другой вариант:

i.ToString("d3")

Ответ 4

Я вспоминаю, как выглядит код, подобный этому, для заполнения чисел нулями...

int[] nums = new int[] { 1, 10, 116 };

foreach (int i in nums)
{
    Console.WriteLine("{0:000}", i);
}

Вывод:

001
010
116

Ответ 5

Каждый раз, когда мне нужно было добавлять вещи в начало строки для соответствия таким критериям, я использовал цикл while. Например:

while (myString.length < 5) myString = "0" + myString;

Хотя может быть и метод string.format, чтобы это сделать, это сработало для меня раньше.