BFr*_*ree 49
String.Format("{0:(###) ###-#### x ###}", double.Parse("1234567890123"))
Run Code Online (Sandbox Code Playgroud)
将导致(123)456-7890 x 123
这假定您拥有的电话号码包含适当的位数,如:
string p = "8005551234";
string formatedPhoneNumber = string.Format("({0}) {1}-{2}", p.Substring(0, 3), p.Substring(3, 3), p.Substring(6, 4));
Run Code Online (Sandbox Code Playgroud)
这将采用包含以任何方式格式化的十位数的字符串,例如"246 1377801"或甚至">> Phone:((246)) 13 - 778 - 01 <<",并将其格式化为"(246) 137-7801":
string formatted = Regex.Replace(
phoneNumber,
@"^\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*(\d)\D*$",
"($1$2$3) $4$5$6-$7$8$9$10");
Run Code Online (Sandbox Code Playgroud)
(如果字符串不包含十位数字,则原始字符串不变.)
编辑:
构建字符串的快速方法是使用StringBuilder.通过将容量设置为最终字符串的精确长度,您将使用相同的字符串缓冲区而不进行任何重新分配,并且ToString方法将返回缓冲区本身作为最终字符串.
这假设源字符串仅包含十位数字:
string formatted =
new StringBuilder(14)
.Append('(')
.Append(phoneNumber, 0, 3)
.Append(") ")
.Append(phoneNumber, 3, 3)
.Append('-')
.Append(phoneNumber, 6, 4)
.ToString();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44866 次 |
| 最近记录: |