为字符串的开头添加前缀

时间:2017-04-26 09:51:41

标签: c# string

我有一个传递给我的字符串,长度可以在1到6个字符之间。根据字符串的长度,我需要在字符串的开头添加适当的前缀并返回appeneded字符串。所以,如果我有类似下面的内容传递给我

  • 1
  • 12
  • 123
  • 1234
  • 12345
  • 123456

我希望返回字符串看起来像

  • X000001
  • X000012
  • X000123
  • X001234
  • X012345
  • X123456

我想出了以下方法

public static string AddToStartOfString(string s)
{
    string value = string.Empty;

    switch (s.Length)
    {
      case 1:
         value = "X00000" + s;
         break;
      case 2:
         value = "X0000" + s;
         break;
      case 3:
         value = "X000" + s;
         break;
      case 4:
         value = "X00" + s;
         break;
      case 5:
         value = "X0" + s;
         break;
      case 6:
         value = "X" + s;
         break;
    }
    return value;
}

这很有效。但我需要这个工作,以防将来增加更多的长度。有没有办法可以添加前缀,即使将来字符串的长度大于6

2 个答案:

答案 0 :(得分:4)

你可以这样做:

public static string AddToStartOfString(string s, int digitCount = 6)
{
    return "X" + s.PadLeft(digitCount, '0');
}

请注意,一旦转换,长度超过最大位数的输入字符串将不会被截断,并且会比正确范围内的值长。

答案 1 :(得分:-1)

最近有一个类似的问题,在你的情况下我会这样做:

public static string Fill(string str, string prefix, int length)
{
    for(int i=str.Length; i<length; i++)
        str = "0" + str;

    return prefix + str;
}