格式化字符串为10个字符

时间:2012-01-23 14:59:15

标签: c# string-formatting

我目前正在开发一个项目,我需要将字符串格式化为只有10个字符。但必须以某种方式开始并以增量计数器结束。

E.G号码的格式为:

0100000001
0100000002
0100000003
...
0100000010
0100000011

即。前两个数字将保持不变,只有最后一个数字将保持递增但字符串必须保持10个字符长。

我怎么能这样做我尝试过使用String.Format但似乎没有用。

更新 我尝试过使用以下

destination = String.Format("07000000{0}", messageCount);

这种方式有效但是一旦messageCount超过10,长度变为11,它需要保持不超过10

5 个答案:

答案 0 :(得分:7)

D8表示格式为十进制,最多包含8个前导零

string.Format("01{0}", counter.ToString("D8"));

答案 1 :(得分:5)

String.Format("01{0:00000000}", i);

答案 2 :(得分:3)

您可以使用:

var counter = 11;
var fixedPart = "01";
var result = fixedPart + counter.ToString().PadLeft(8,'0');

答案 3 :(得分:1)

您是否尝试过String.Format("00{0:00000000}", num)

请参阅Custum numeric formats

答案 4 :(得分:0)

给这个扩展方法一个镜头......我没有编译它,但让我知道它是否有效: - )

public static class Ex
{
  public static string ToSpecialString(this string value)
  {
    int desiredLength = 10;
    string prefix = "01";
    string padding = new String('0', desiredLength - prefix.Length - value.Length);
    return prefix + padding + value;
  }
}

... usage ...

Console.WriteLine( "32".ToSpecialString() );
// should output "0100000032"