我有正在转换的字符串,需要四个字符 长。这些值的长度为0到4个字符。 我需要用零填充字符串以使所有ID长4个字符:
实施例
输入数字需要
1 => 0001
121 => 0121
0567 => 0567
到目前为止,我已经尝试过:
int temCode = 0;
DataTable dt = objSites.Get_Max_SiteCode();
if (dt.Rows.Count > 0)
{
string siteCode = dt.Rows[0]["SiteCode"].ToString();
string code = siteCode.Substring(siteCode.Length - 4);
temCode = Convert.ToInt32(code) + 1;
temCode.ToString().PadLeft(4, '0'); // same number is coming here without any pad left.
}
答案 0 :(得分:3)
你不是做结果为PadLeft
的任何事情 - 但你无论如何也不需要这样做。您只需在ToString
调用中指定位数(和格式):
string result = temCode.ToString("d4");
答案 1 :(得分:2)
问题在于:
.ToString()
.PadLeft(...)
所有返回 new 字符串,它们不会以任何方式修改您调用方法的对象。
请注意, 将结果放入字符串中。整数值不具有填充的任何概念,因此整数值0010与整数值10相同。
所以试试这个:
string value = temCode.ToString().PadLeft(4, '0');
或者你可以使用它:
string value = temCode.ToString("d4");
或者这个:
string value = string.Format("{0:0000}", temCode);
答案 2 :(得分:1)
您可以将数字格式化为您选择的长度。说code.ToSting("0000")
using System.IO;
using System;
class Program
{
static void Main()
{
int i =30;
String strI = i.ToString("0000");
Console.WriteLine(strI);
}
}
答案 3 :(得分:0)
只需使用string.padleft。
例如:
int i = 100;
int length = 4;
string intString = i.ToString().PadLeft(length, '0');
答案 4 :(得分:0)
当涉及整数值000001 = 1.因此,您将无法将带有前导零的整数作为数值。它需要存储为字符串。所以......
var foo = 1;
var formatted = foo.ToString().PadLeft(5, '0');