[英]How do you pad a string with a given character or make it empty if length to pad is 0 in C#?
是否有一個功能幾乎與String.PadLeft(int length)完全一樣的功能,除了如果length為0會使字符串為空? 這就是我想做的:
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!
沒有這樣的方法。 但是,您可以編寫自己想要的擴展方法 。
此方法的行為與經典的PadLeft
完全相同,不同之處在於,如果提供的長度為0,它將返回一個空字符串。
您可以輕松地將條件從padLength == 0
更改為padLength < input.Length
如果您希望返回空白字符串(如果填充小於字符串的長度)。
public static class Extensions
{
public static string CustomPadLeft(this string input, int padLength, char padChar)
{
if (padLength == 0)
{
return string.Empty;
}
return input.PadLeft(padLength, padChar);
}
}
這是驗證行為的相應單元測試:
[TestMethod]
public void PadTest()
{
Assert.AreEqual(string.Empty, "xyz".CustomPadLeft(0, '0'));
Assert.AreEqual("xyz", "xyz".CustomPadLeft(2, '0'));
Assert.AreEqual("00000abc", "abc".CustomPadLeft(8, '0'));
}
我還建議您找到比我的CustomPadLeft
更好的名稱...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.