【问题标题】:How to create leading zeros? [duplicate]如何创建前导零? [复制]
【发布时间】:2015-02-18 07:22:28
【问题描述】:
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

【问题讨论】:

  • 在格式化之前使用PadLeft(7, '0')0 字符添加到您的字符串中
  • 您希望输入“034523”、“34523”、“0034523”给出不同的结果吗?如果是这样,您绝对应该将它们转换为整数。
  • return Convert.ToInt64(value).ToString("#- ###-###");此行使用未转换的 0 值。那么如何评价回报。请举个例子。

标签: c#


【解决方案1】:

改用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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 也许可以添加一些代码,这样这个人就不需要去其他地方了。
      • 0034523 将变为 0-034-523 和 00345 将变为 0-034-5(无额外值或 0-000-345)请帮助我任何人
      • return Convert.ToInt64(value).ToString("#- ###-###");此行使用未转换的 0 值。那么如何评价回报。请举例
      猜你喜欢
      • 2012-08-27
      • 1970-01-01
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多