C# Streamwriter格式

C# Streamwriter格式,c#,.net,string-formatting,C#,.net,String Formatting,我必须以特殊格式打印count变量(非负数): 结果字符串的总长度应正好为20个字符 如有必要,应将“0”字符添加到字符串的左侧 例如: 2 -> "00000000000000000002" // <- The length of each string is 20 30 -> "00000000000000000030" 123 -> "00000000000000000123" 2->“0000000000000000000 2”//“00000

我必须以特殊格式打印
count
变量(非负数):

  • 结果字符串的总长度应正好为20个字符
  • 如有必要,应将“0”字符添加到字符串的左侧
  • 例如:

      2   -> "00000000000000000002" // <- The length of each string is 20
      30  -> "00000000000000000030"
      123 -> "00000000000000000123"
    
    2->“0000000000000000000 2”//“000000000000 30”
    123 -> "00000000000000000123"
    

    在.Net中实现这一点的最佳方法是什么?

    您可以使用
    PadLeft

    String value = "2";
    String result = value.PadLeft(20, '0'); // <- 20 is desired string length, '0' - padding
    

    您可以使用
    PadLeft

    String value = "2";
    String result = value.PadLeft(20, '0'); // <- 20 is desired string length, '0' - padding
    

    我认为PadLeft是您需要的。

    这将产生以下输出:
    00000000000000000002

    00000000000000000020

    我认为PadLeft是您需要的。

    这将产生以下输出:
    00000000000000000002

    00000000000000000020

    如果原始值是字符串,则唯一的选择是使用PadLeft作为Dmitry Bychenko应答,或者创建自定义格式提供程序

    另一方面,如果原始值是一个数字,则可以使用标准格式说明符
    D
    使用填充设置数字格式,例如:

    var s=String.Format("{0:D20}",5};
    var s=String.Format("{0:D20}",50};
    

    零填充也适用于指数
    E
    和十六进制
    X
    说明符。MSDN在

    中包含详细说明如果原始值是字符串,则您唯一的选择是使用PadLeft作为Dmitry Bychenko应答,或创建自定义格式提供程序

    另一方面,如果原始值是一个数字,则可以使用标准格式说明符
    D
    使用填充设置数字格式,例如:

    var s=String.Format("{0:D20}",5};
    var s=String.Format("{0:D20}",50};
    
    零填充也适用于指数
    E
    和十六进制
    X
    说明符。MSDN在
    字符串s=“00000000000000”中包含详细说明;
    字符串输入=“20”;
    列表=新列表();
    foreach(s中的var项目)
    {
    list.Add(Convert.ToString(item));
    }
    列表。添加(输入);
    int count=input.Length;
    列表。删除范围(0,计数);
    StringBuilder结果=新建StringBuilder();
    foreach(列表中的变量项)
    {
    result.Append(item.ToString());
    }
    控制台写入线(结果);
    控制台写入线(结果长度);
    
    string s=“00000000000000”;
    字符串输入=“20”;
    列表=新列表();
    foreach(s中的var项目)
    {
    list.Add(Convert.ToString(item));
    }
    列表。添加(输入);
    int count=input.Length;
    列表。删除范围(0,计数);
    StringBuilder结果=新建StringBuilder();
    foreach(列表中的变量项)
    {
    result.Append(item.ToString());
    }
    控制台写入线(结果);
    控制台写入线(结果长度);
    
            string s = "00000000000000000000";
            string input = "20";
            List<string> list = new List<string>();
            foreach (var item in s)
            {
                list.Add(Convert.ToString(item));
            }
            list.Add(input);
    
            int count = input.Length;
    
            list.RemoveRange(0, count);
    
            StringBuilder result = new StringBuilder();
            foreach (var item in list)
            {
                result.Append(item.ToString());
            }
    
            Console.WriteLine(result);
            Console.WriteLine(result.Length);