我有一个传递给我的字符串,长度可以在1到6个字符之间。根据字符串的长度,我需要在字符串的开头添加适当的前缀并返回appeneded字符串。所以,如果我有类似下面的内容传递给我
我希望返回字符串看起来像
我想出了以下方法
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
答案 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;
}