填充未应用于字符串

时间:2019-09-26 21:16:51

标签: c# string

嗨,我只是想在字符串中添加零,例如,某公司的系统中有一些旧条形码,只打印了12个字符,而新条形码是13个,我只需要添加长度为12时会额外增加一个零。

using System;

public class Program
{
    public static void Main()
    {
         string BarCode="000001661705"; 
         char pad = '0';
         if(BarCode.Length==12)
         {
            BarCode = BarCode.PadLeft(1, pad);       
         }
        Console.WriteLine("Length of barcode" + BarCode.Length);
        Console.WriteLine("Barcode=" + BarCode);        
    }
}

这是.net填充的字符,当字符数应为13并加上零时,您将看到字符数仍为12。

https://dotnetfiddle.net/VsvPIl

3 个答案:

答案 0 :(得分:4)

只需将其添加为字符串?

using System;

public class Program
{
    public static void Main()
    {
        string BarCode="000001661705";

             char pad = '0';
            if(BarCode.Length==12)
            {
                BarCode = pad + BarCode;


            }
        Console.WriteLine("Length of barcode" + BarCode.Length);
        Console.WriteLine("Barcode=" + BarCode);

    }
}

答案 1 :(得分:1)

您必须使用BarCode.PadLeft(BarCode.Length + 1, pad)来获得所需的输出。  但我不明白您为什么要这么做,只需添加"0" + BarCode

答案 2 :(得分:1)

PadLeft接受作为返回字符串的参数totalWidth,因此它将填充字符串是否较短,而当长度已经等于o较大时则不执行任何操作。只需使用:

BarCode = BarCode.PadLeft(13, pad);

代替

if(BarCode.Length==12)
{
  // here is the problem, you specified totalWidth = 1
  BarCode = BarCode.PadLeft(1, pad);       
}

String.PadLeft Method