【问题标题】:Pad a number with starting zero in .Net在.Net中填充一个以零开头的数字
【发布时间】:2010-10-04 02:51:24
【问题描述】:

我需要用起始零填充所有个位数字。 有人可以建议最好的方法吗? (例如 1 -> 01、2 -> 02 等)

【问题讨论】:

  • 你是如何输出这些的?例如,如果您要将它们绑定到 ASP.NET 中的控件,则可能有一种更简单的方法可以在绑定它们时应用格式字符串。

标签: .net string formatting padding


【解决方案1】:
number.ToString().PadLeft(2, '0')

【讨论】:

  • 赞成,因为这个解决方案是自我记录的——它的意图比格式提供者(“00”)更清晰。
【解决方案2】:

我会在号码上拨打.ToString,提供需要两位数的format string,如下所示:

int number = 1;
string paddedNumber = number.ToString("00");

如果它是较大字符串的一部分,您可以在占位符中使用格式字符串:

string result = string.Format("{0:00} minutes remaining", number);

【讨论】:

    【解决方案3】:

    假设您只是输出这些值,而不是存储它们

    int number = 1;
    Console.Writeline("{0:00}", number);
    

    这是 .Net 支持的所有格式的 useful resource

    【讨论】:

      【解决方案4】:
      # In PowerShell:
      
      $year = 2013
      $month = 5
      $day = 8
      
      [string] $datestamp = [string]::Format("{0:d4}{1:d2}{2:d2}", $year, $month, $day)
      Write-Host "Hurray, hurray, it's $datestamp!"
      

      【讨论】:

      • 程序员问vb.net 为什么给他powershell
      【解决方案5】:

      我将添加此选项作为答案,因为我在这里看不到它,它可以作为替代方案有用。

      在 VB.NET 中:

      ''2 zeroes left pad
      Dim num As Integer = 1
      Dim numStr2ch As String = Strings.Right("00" & num.ToString(), 2)
      
      ''4 zeroes left pad
      Dim numStr4ch As String = Strings.Right("0000" & num.ToString(), 4)
      
      ''6 zeroes left pad
      Dim numStr6ch As String = Strings.Right("000000" & num.ToString(), 6)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-27
        • 1970-01-01
        • 2013-08-09
        • 1970-01-01
        • 1970-01-01
        • 2010-09-24
        • 1970-01-01
        相关资源
        最近更新 更多