My program converts an alphanumeric phone number into only numbers. For example 1-800-FLOWERS to 18003569377. However, I'm trying to format my output to show 1-800-356-9377.
Heres my code so far:
public static void main(String[] args)
{
System.out.println ("Enter phone number:");
Scanner scanInput = new Scanner (System.in);
String initialPhoneNumber;
initialPhoneNumber = scanInput.nextLine ();
initialPhoneNumber = initialPhoneNumber.toUpperCase();
long convertedPhoneNumber = phoneNumber (initialPhoneNumber);
System.out.println ("Converted: " + convertedPhoneNumber);
}
public static long phoneNumber (String initialPhoneNumber)
{
long number = 0;
int stringLength = initialPhoneNumber.length();
for (int digitNum = 0 ; digitNum < stringLength ; digitNum++ )
{
char ch = initialPhoneNumber.charAt(digitNum);
if (Character.isLetter(ch))
{
switch(ch)
{
case 'A' : case 'B' : case 'C' : number *= 10; number += 2; break;
case 'D' : case 'E' : case 'F' : number *= 10; number += 3; break;
case 'G' : case 'H' : case 'I' : number *= 10; number += 4; break;
case 'J' : case 'K' : case 'L' : number *= 10; number += 5; break;
case 'M' : case 'N' : case 'O' : number *= 10; number += 6; break;
case 'P' : case 'Q' : case 'R' : case 'S' : number *= 10; number += 7; break;
case 'T' : case 'U' : case 'V' : number *= 10; number += 8; break;
case 'W' : case 'X' : case 'Y' : case 'Z' : number *= 10; number += 9; break;
}
}
else if (Character.isDigit(ch))
{
number *= 10; number += Character.getNumericValue(ch);
}
}
return number;
}
Any help would be greatly appreceiated!