Write a test program that prompts the user to enter a phone number as a string.
ID: 3676605 • Letter: W
Question
Write a test program that prompts the user to enter a phone number as a string. The input number may contain letters. The program translates a letter (uppercase or lowercase) to a digit and leaves all other characters intact. Here is a sample run of the program:
Enter a string: 1-800-Flowers
1-800-3569377
Enter a string: 1800flowers
18003569377
This is what I have
import java.util.*;
import java.lang.String;
import java.lang.Character;
public class CheckPassword
{
public static void main (String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("Enter a phone number");
String a = input.nextLine();
char ch;
for (int x = 0; x<a.length();x++)
{
ch = a.charAt(x);
if (Character.isUpperCase(ch))
ch = getNumber(ch);
}
System.out.println(a);
}
public static char getNumber(char uppercaseLetter)
{
char getNumber = '0';
switch (uppercaseLetter)
{
case 'A':
case 'B':
case 'C':
getNumber = '2';
break;
case 'D':
case 'E':
case 'F':
getNumber = '3';
break;
case 'G':
case 'H':
case 'I':
getNumber = '4';
break;
case 'J':
case 'K':
case 'L':
getNumber = '5';
break;
case 'M':
case 'N':
case 'O':
getNumber = '6';
break;
case 'P':
case 'Q':
case 'R':
case 'S':
getNumber = '7';
break;
case 'T':
case 'U':
case 'V':
getNumber = '8';
break;
case 'W':
case 'X':
case 'Y':
case 'Z':
getNumber = '9';
break;
}
return getNumber;
}
}
Explanation / Answer
/**The java program CheckPassword that prompts user
* to enter a string contains digits and alphabets
* Then the program converts the alphabets to
* corresponding digits and print to console*/
//CheckPassword.java
import java.util.*;
import java.lang.String;
import java.lang.Character;
public class CheckPassword
{
public static void main (String[] args)
{
//Declare a string object ,digitString
String digitString="";
char ch;
//Create an instance of Scanner class
Scanner input = new Scanner(System.in);
System.out.println("Enter a phone number");
//read input into a
String a = input.nextLine();
for (int x = 0; x<a.length();x++)
{
ch = a.charAt(x);
//Check if the character,ch is not digit
if (!Character.isDigit(ch))
{
//Then convert the character, ch to upper case
ch=Character.toUpperCase(ch);
//Call getNumber method to convert the alphabet
//to the corresponding digit
ch = getNumber(ch);
//concateneate the character,ch with digitString
digitString+=ch;
}
else
//otherwise append ch to the digitString
digitString+=ch;
}
//print digitString object
System.out.println(digitString);
}
/*The method getNumbre that takes a character and check for
* the match case of upper case alphabets and returns the
* correspondig letter otherwise return the input argument
* as returns type*/
public static char getNumber(char uppercaseLetter)
{
//Assign the uppercaseLetter to getNumber
char getNumber = uppercaseLetter;
switch (uppercaseLetter)
{
case 'A':
case 'B':
case 'C':
getNumber = '2';
break;
case 'D':
case 'E':
case 'F':
getNumber = '3';
break;
case 'G':
case 'H':
case 'I':
getNumber = '4';
break;
case 'J':
case 'K':
case 'L':
getNumber = '5';
break;
case 'M':
case 'N':
case 'O':
getNumber = '6';
break;
case 'P':
case 'Q':
case 'R':
case 'S':
getNumber = '7';
break;
case 'T':
case 'U':
case 'V':
getNumber = '8';
break;
case 'W':
case 'X':
case 'Y':
case 'Z':
getNumber = '9';
break;
}
//return getNumber
return getNumber;
}
}
----------------------------------------------------------------------------------------------------------------
Sample output:
Output1:
Enter a phone number
1-8-00-Flowers
1-8-00-3569377
Output2:
Enter a phone number
1800flowers
18003569377
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.