我有一个字符串“1112224444”,它是一个电话号码。我想在将其存储到文件之前将其格式化为 111-222-4444。它位于数据记录中,我希望能够在没有的情况下执行此操作分配一个新变量。
我在想:
String.Format("{0:###-###-####}", i["MyPhone"].ToString() );
但这似乎并不能解决问题。
** 更新 **
好的。我选择了这个解决方案
Convert.ToInt64(i["Customer Phone"]).ToString("###-###-#### ####")
现在,当扩展名小于 4 位时,它会变得困惑。它将从右侧填写数字。所以
1112224444 333 becomes
11-221-244 3334
有什么想法吗?
最佳答案
请注意,此答案适用于数字数据类型(int、long)。如果您以字符串开头,则需要先将其转换为数字。另外,请注意您需要验证初始字符串的长度是否至少为 10 个字符。
来自 good page充满了例子:
String.Format("{0:(###) ###-####}", 8005551212);
This will output "(800) 555-1212".
虽然正则表达式可能会更好,但请记住旧的编程报价:
Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.
--Jamie Zawinski, in comp.lang.emacs
https://stackoverflow.com/questions/188510/