将int(number)转换为带前导零的字符串?(4位数)

Ehs*_*san 70 c# c#-4.0

可能重复:
数字格式:如何将1转换为"01",2转换为"02"等?

如何转换intstring使用以下方案?

  • 1 转换为 0001
  • 123 转换为 0123

当然,字符串的长度是动态的.对于此示例,它是:

int length = 4;
Run Code Online (Sandbox Code Playgroud)

我该如何转换呢?

Jen*_*ens 108

像这样使用String.PadLeft:

var result = input.ToString().PadLeft(length, '0');
Run Code Online (Sandbox Code Playgroud)

  • 这不是一个好的解决方案.使用它,你必须弄清楚数字的当前长度并添加正确数量的零.例如,12为零,1为零为123.使用.ToString("Dx")要好得多. (4认同)
  • 事实并非如此.PadLeft将字母总数作为参数,而不是要添加的字母.所以"1".PadLeft(4,'0')是"0001". (3认同)
  • 不是一个好的模式,你分配和复制字符串两次,只是使用你知道的最简单的解决方案。`ToString` 有一个参数只是为了这个目的,使用它。 (2认同)
  • 下面的杰夫解决方案会更好 (2认同)

Jef*_*ado 85

使用可用的格式选项,使用十进制格式字符串.与直接字符串操作相比,它更灵活,几乎不需要维护.

要使用至少4位数来获取字符串表示:

int length = 4;
int number = 50;
string asString = number.ToString("D" + length); //"0050"
Run Code Online (Sandbox Code Playgroud)


ada*_*ost 62

使用ToString()方法 - 标准自定义数字格式字符串.看看MSDN文章如何:使用前导零填充数字.

string text = no.ToString("0000");
Run Code Online (Sandbox Code Playgroud)

  • 这是直接简单明了的。 (3认同)

Mag*_*tLU 5

val.ToString("".PadLeft(length, '0'))