在 C# 中,我有一个整数值需要转换为字符串,但它需要在之前添加零:
例如:
int i = 1;
当我将其转换为字符串时,它需要变为 0001
我需要知道 C# 中的语法。
i.ToString().PadLeft(4, '0')
- 好的,但不适用于负数
i.ToString("0000");
- 显式格式
i.ToString("D4");
- 短格式格式说明符
$"{i:0000}";
- 字符串插值 (C# 6.0+)
这是一个很好的例子:
int number = 1;
//D4 = pad with 0000
string outputValue = String.Format("{0:D4}", number);
Console.WriteLine(outputValue);//Prints 0001
//OR
outputValue = number.ToString().PadLeft(4, '0');
Console.WriteLine(outputValue);//Prints 0001 as well
您可以使用:
int x = 1;
x.ToString("0000");
string.Format("{0:0000}", x)
C# 6.0 风格的字符串插值
int i = 1;
var str1 = $"{i:D4}";
var str2 = $"{i:0000}";
$"some text {x.ToStrig("D4")} after text"
的好方法
i.ToString("0000");
十分简单
int i = 1;
i.ToString("0###")
简单地
int i=123;
string paddedI = i.ToString("D4");
.NET 在 String
类中有一个简单的函数来执行此操作。只需使用:
.ToString().PadLeft(4, '0') // that will fill your number with 0 on the left, up to 4 length
int i = 1;
i.toString().PadLeft(4,'0') // will return "0001"
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
public static string ToLeadZeros(this int strNum, int num)
{
var str = strNum.ToString();
return str.PadLeft(str.Length + num, '0');
}
// var i = 1;
// string num = i.ToLeadZeros(5);
大多数给定的答案都很慢或非常慢,或者不适用于负数。
试试这个:
}
//
//
///<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 );
}
string hello = "Hello C# Corner.";
string helloHash = hello.PadLeft(5, '#');
Console.WriteLine(helloHash);
输出 :-
#####Hello C# Corner.
在这里,我想用 4 位数字填充我的号码。例如,如果为 1,则应显示为 0001,如果为 11,则应显示为 0011。
下面是完成此操作的代码:
reciptno=1; // Pass only integer.
string formatted = string.Format("{0:0000}", reciptno);
TxtRecNo.Text = formatted; // Output=0001
我实现了这个代码来为 PDF 文件生成收款号码。
填充 int i
以匹配 int x
的字符串长度,当两者都可以为负时:
i.ToString().PadLeft((int)Math.Log10(Math.Abs(x < 0 ? x * 10 : x)) + 1, '0')