2

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

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

4

1 回答 1

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);
    }
于 2012-05-24T14:21:35.990 回答