在c#中,我有一个整数值,需要转换为字符串,但它需要在前面加零:
例如:
int i = 1;
当我把它转换成字符串时,它需要变成0001
我需要知道c#中的语法。
在c#中,我有一个整数值,需要转换为字符串,但它需要在前面加零:
例如:
int i = 1;
当我把它转换成字符串时,它需要变成0001
我需要知道c#中的语法。
当前回答
int p = 3; // fixed length padding
int n = 55; // number to test
string t = n.ToString("D" + p); // magic
Console.WriteLine("Hello, world! >> {0}", t);
// outputs:
// Hello, world! >> 055
其他回答
c# 6.0风格的字符串插值
int i = 1;
var str1 = $"{i:D4}";
var str2 = $"{i:0000}";
string hello = "Hello C# Corner.";
string helloHash = hello.PadLeft(5, '#');
Console.WriteLine(helloHash);
输出:
#####Hello C# Corner.
大多数给出的答案都很慢或很慢,或者对负数不适用。
试试这个:
}
//
//
///<summary>Format a value with a fixed number of digits.</summary>
public static string Pad( this long v, int digits ) {
int negative = 0;
if ( v < 0 ) {
negative = 1;
v = Math.Abs( v );
}
var source = v.ToString();
var length = source.Length;
int max = length;
if ( max < digits ) {
max = digits;
}
max += negative;
var ca = new char[ max ];
for ( int i = 0; i < max; i++ ) {
ca[ i ] = '0';
}
while ( length > 0 ) {
ca[ --max ] = source[ --length ];
}
if ( 0 != negative ) ca[ 0 ] = '-';
return new string( ca );
}
i.ToString()。PadLeft(4, '0') -好的,但对负数无效 i.ToString(“0000”);-显式形式 i.ToString (D4);-简写格式说明符 ${: 0000}”;字符串插值(c# 6.0+)
int p = 3; // fixed length padding
int n = 55; // number to test
string t = n.ToString("D" + p); // magic
Console.WriteLine("Hello, world! >> {0}", t);
// outputs:
// Hello, world! >> 055