簡體   English   中英

如果在C#中要填充的長度為0,如何填充給定字符的字符串或使其為空?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM