我正在编写一种格式化电话号码的方法,如果初始数组中的数字少于 10 位,还会在开头添加填充。我只是在输入少于 10 位数字且我的方法显然没有添加填充的用例中失败。最常见的错误是使用了错误的 padcount 参数。我确定我错过了一些简单的东西。
public static string CreatePhoneNumber(int[] numbers)
{
string numbas = string.Join("", numbers);
string ammendNumbas = numbas;
char pad = '0';
if ( numbas.Length < 10)
{
ammendNumbas = numbas.PadLeft(10, pad);
}
string formatString = "(###) ###-####";
var returnValue = Convert.ToInt64(ammendNumbas)
.ToString(formatString.Substring(0,ammendNumbas.Length+4))
.Trim();
return returnValue;
}
最佳答案
当您使用 Convert.ToInt64 时,您将删除所有填充,因为填充只能应用于字符串。应用填充后,您不需要将该值转换回整数。
我想你想要的是这个:
public static string CreatePhoneNumber(int[] numbers)
{
Int64 numbas = Convert.ToInt64(string.Join("", numbers));
return numbas.ToString("(000) 000-0000");
}
关于C# padLeft,不添加填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46280039/