Вместо этого я хочу использовать string.format()
для достижения того же результата:
if (myString.Length < 3)
{
myString = "00" + 3;
}
Вместо этого я хочу использовать string.format()
для достижения того же результата:
if (myString.Length < 3)
{
myString = "00" + 3;
}
Если вы просто форматируете число, вы можете просто указать правильный пользовательский числовой формат, чтобы сделать его трехзначной строкой напрямую:
myString = 3.ToString("000");
Или, альтернативно, используйте стандартную строку формата D:
myString = 3.ToString("D3");
string.Format("{0:000}", myString);
Он называется Padding:
myString.PadLeft(3, '0')
(Пока не могу комментировать с достаточной репутацией, позвольте мне добавить sidenote)
На всякий случай, если ваш вывод должен быть фиксированной длины из 3 цифр, т.е. для числа, бегущего до 1000 или более (зарезервированная фиксированная длина), не забудьте добавить мод 1000 на него.
yourNumber=1001;
yourString= yourNumber.ToString("D3"); // "1001"
yourString= (yourNumber%1000).ToString("D3"); // "001" truncated to 3-digit as expected
Пример следа на Fiddler https://dotnetfiddle.net/qLrePt
"Как: введите номер с ведущими нулями" http://msdn.microsoft.com/en-us/library/dd260048.aspx
Вы также можете сделать: string.Format("{0: D3}, 3);
Вот как это делается с использованием строковой интерполяции С# 7
$"{myString:000}"
Должно ли быть String.Format
?
Это выглядит как задание для String.Padleft
myString=myString.PadLeft(3, '0');
Или, если вы преобразовываете прямо из int:
myInt.toString("D3");
Это сокращенная строка формата Интерполяция:
$"{value:D3}"