如何创建前导零?

时间:2014-12-19 11:00:41

标签: c#

protected void Page_Load(object sender, EventArgs e)
{
    lab.Text = FormatTelephoneNumber("0034523");
}

public static string FormatTelephoneNumber(string value)
{
   value = new System.Text.RegularExpressions.Regex(@"\D").Replace(value, string.Empty);
   return Convert.ToInt64(value).ToString(" #- ###-###");

}

提供输出:

  

34-523

但我需要输出:

  

0-034-523

0034523将成为0-034-52300345将变为0-034-5(无额外的价值或0- 000-345

3 个答案:

答案 0 :(得分:4)

根据MSDN,您可以使用0代替#

value.ToString("0- 000-000")

答案 1 :(得分:4)

您不应将其转换为int。在string本身执行正则表达式。转换为int将忽略前导0

答案 2 :(得分:3)

使用0- 000-000作为格式。

要获得格式的其他要求,请使用以下两种格式:

int val = Convert.ToInt32(value);

if (val < 1000)
{
    return val.ToString("0-000-0");
}
else
{
    return val.ToString("0-000-000");
}

0用于表示填充。

根据MSDN

  

如果存在,则用相应的数字替换零;否则,结果字符串中会出现零。