如何优化此FormatAccountNumber方法?

时间:2012-05-24 14:02:57

标签: c#

我已经编写了这种格式化帐号的方法:

public static  string FormatAccountNumber(string accountNumber)
{
    if (string.IsNullOrEmpty(accountNumber))
        return string.Empty;

    if (accountNumber.Length < 4)
        return "****";
    else
    {
        StringBuilder stringBuilder = new StringBuilder();
        int starLength = accountNumber.Length - 4;

        for (int index = 0; index < starLength; index++)
            stringBuilder.Append("*");

        stringBuilder.Append(accountNumber.Substring(accountNumber.Length - 4));

        return stringBuilder.ToString();
    }
}

这可以通过使用StringBuilder

进行优化还是已经过优化

1 个答案:

答案 0 :(得分:3)

以下方法可以满足您的需求,易于阅读和执行速度快几倍。如果你不需要执行数千次,你仍然希望看到执行时间的差异。

    public static string FormatAccountNumber2(string accountNumber)
    {
        if (string.IsNullOrEmpty(accountNumber))
            return string.Empty;

        if (accountNumber.Length < 4)
            return "****";

        return new string('*', accountNumber.Length - 4) +
            accountNumber.Substring(accountNumber.Length - 4);
    }