так же, как вопрос говорит. Я получаю числа как 2125550938 или 20298277625552. они должны измениться на (212) 555-0938 и (202) 982-7762 x 5552 соответственно. это находится в vb.net
Dim newNumber As New String
If number.Length = 10 Then
newNumber = "(" & number.Substring(0, 3) & ") " & number.Substring(2, 3) & "-" & number.Substring(5, 4)
ElseIf number.Length = 14 Then
newNumber = "(" & number.Substring(0, 3) & ") " & number.Substring(2, 3) & "-" & number.Substring(5, 4) & " x " & number.Substring(9)
End if
Я бы, вероятно, выбрал реализацию регулярных выражений, примерно так:
Dim phoneNumbers() As String = {"2125550938", _
"20298277625552", _
"2025551212378", _
"202555131345943"}
Dim ext As String = ""
Dim r As New Regex("^(?<AC>\d{3})(?<First>\d{3})(?<Last>\d{4})(?<Ext>\d*$)")
Dim m As Match
For i As Int32 = 0 To (phoneNumbers.Length - 1)
m = r.Match(phoneNumbers(i))
If m.Groups("Ext").Length > 0 Then
ext = " x " & CStr(m.Groups("Ext").Value)
Else
ext = ""
End If
Console.WriteLine("({0}) {1}-{2}{3}", _
CStr(m.Groups("AC").Value), _
CStr(m.Groups("First").Value), _
CStr(m.Groups("Last").Value), ext)
Next
Console.Read()
Это позволит использовать телефонные номера без расширений или с расширениями переменной длины.