C# 创建固定长度的数字字符串

C# 创建固定长度的数字字符串,c#,string,C#,String,我有一定数量的文件,在我的程序中需要这些文件名。这些文件具有固定的命名方式,即前缀+digits.jpg。例如:head001.jpg、head002.jpg、head003.jpg等 结尾的位数可能会有所不同,因此程序可以更改文件命名的起始位置、结束位置以及命名中使用的数字位数。例如:第二种情况可能是-tail00001.jpg、tail00002.jpg、tail00003.jpg等,直到tail00100.jpg 在这种情况下:起始数字是0,结束数字是100,numDigits是5 在C+

我有一定数量的文件,在我的程序中需要这些文件名。这些文件具有固定的命名方式,即前缀+digits.jpg。例如:head001.jpg、head002.jpg、head003.jpg等

结尾的位数可能会有所不同,因此程序可以更改文件命名的起始位置、结束位置以及命名中使用的数字位数。例如:第二种情况可能是-tail00001.jpg、tail00002.jpg、tail00003.jpg等,直到tail00100.jpg 在这种情况下:起始数字是0,结束数字是100,numDigits是5

在C++中,我看到这样的格式化如下: format只需使用string.format,并使用精度说明符表示所需的位数:

string name = string.Format("tail{0:d6}.jpg", index);
有关更多详细信息,请参阅MSDN文档

当然,您可以通过编程方式构建字符串格式:

string name = string.Format("tail{0:d" + digits + "}.jpg", index);
或者按照Vano的建议使用PadLeft。但是,您可能仍希望使用string.Format:

使用PadLeft的优点是更容易更改填充值,尽管我认为您总是希望它为0。

string具有PadLeft方法:

..在这种情况下:起始数字是0,结束数字是100和 numDigits将是5

您可以使用and和for循环:

int start = 0;
int end = 100;
int numDigits = 5;
string name = "tail";
string extension = ".jpg";
for(int i = start; i <= end; i++)
{
    string fileName = string.Format(
        "{0}{1}{2}", name, i.ToString("D" + numDigits), extension);
    Console.WriteLine(fileName);
}

可以使用string.Format执行此操作

var result = string.Format("{0}{1:00000}{2}", prefix, number, filetype)
或者你可以用左键

var result = prefix + number.ToString().PadLeft('0', numDigits) + "." + extension;

或者您可以混合使用这两种格式:

String.Format是您的朋友。MSDN文档:或ToString:myIntValue.ToString 8//8表示输出的总长度string@SBI:您是否可以指向构造函数、函数或格式文本,以使用string.format保持数字字符串的固定长度?
tail00000.jpg
tail00001.jpg
tail00002.jpg
tail00003.jpg
tail00004.jpg
tail00005.jpg
tail00006.jpg
tail00007.jpg
tail00008.jpg
tail00009.jpg
tail00010.jpg
....
tail100.jpg
var result = string.Format("{0}{1:00000}{2}", prefix, number, filetype)
var result = prefix + number.ToString().PadLeft('0', numDigits) + "." + extension;