【发布时间】:2015-11-04 07:13:55
【问题描述】:
除了如果长度为 0 使字符串为空之外,是否有一个函数几乎与 String.PadLeft(int length) 所做的完全一样? 这就是我想做的:
string someText = "abc".PadLeft(8, '0');
Console.WriteLine(someText);
string otherText = "xyz".PadLeft(0, '0');
Console.WriteLine(otherText);
Console.WriteLine("Done!");
我希望输出是这样的:
00000abc
Done!
然而,实际的输出是这样的:
00000abc
xyz
Done!
【问题讨论】:
-
你期望 "xyz".PadLeft(2, '0'); 的结果是什么?
-
写一个扩展方法,如果为0,返回空,否则返回PadLeft
-
你可能不得不写一个扩展。
-
padleft 中的第一个参数是列宽,如果将列宽指定为 0,则不会填充任何内容,因为仅当字符串长度小于列宽时才会发生填充。因此,您会得到“xyz”作为输出。如果你想返回空字符串,你应该检查列宽是否为 0,那么它应该返回空。