您可能对PadLeft 方法感兴趣,该方法使用多个字符填充任何字符串的左侧部分,以使整个字符串长度等于指定长度。显然,如果字符串已经大于或等于指定的长度,它不会做任何事情。
以下方法接受一个字符串、一个前缀和一个字符,用作前缀和字符串之间的填充。它进行一些初始验证以将空字符串更改为空字符串并根据所需长度检查字符串长度,然后使用PadLeft 用指定字符填充字符串:
private static string PrefixAndPad(string text, string prefix, char padChar, int length)
{
text = text ?? "";
prefix = prefix ?? "";
if (text.Length >= length) return text;
if (prefix.Length + text.Length >= length) return prefix + text;
return prefix + text.PadLeft(length - prefix.Length, padChar);
}
然后你可以像这样使用它:
private static void Main()
{
// Our input strings, which are numbers converted to strins
string str1 = 42.ToString();
// The following line formats as currency ("c") then removes the currency symbol
string str2 = 1234.56.ToString("c").Replace("$", "");
Console.WriteLine(PrefixAndPad(str1, "FOO", '.', 10));
Console.WriteLine(PrefixAndPad(str1, "$ ", 'x', 11));
Console.WriteLine(PrefixAndPad(str2, "$ ", '~', 14));
Console.Write("\nDone!\nPress any key to exit...");
Console.ReadKey();
}
输出