I have a string "1112224444' it is a telephone number. I want to format as 111-222-4444 before I store it in a file. It is on a datarecord and I would prefer to be able to do this without assigning a new variable.
I was thinking:
String.Format("{0:###-###-####}", i["MyPhone"].ToString() );
but that does not seem to do the trick.
** UPDATE **
Ok. I went with this solution
Convert.ToInt64(i["Customer Phone"]).ToString("###-###-#### ####")
Now its gets messed up when the extension is less than 4 digits. It will fill in the numbers from the right. so
1112224444 333 becomes
11-221-244 3334
Any ideas?
Please note, this answer works with numeric data types (int, long). If you are starting with a string, you'll need to convert it to a number first. Also, please take into account that you'll need to validate that the initial string is at least 10 characters in length.
From a good page full of examples:
String.Format("{0:(###) ###-####}", 8005551212);
This will output "(800) 555-1212".
Although a regex may work even better, keep in mind the old programming quote:
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