please use JAVA Programming Businesses want phone numbers th
please use JAVA Programming
Businesses want phone numbers that are easy to remember, and one that can be tied to a phone number are even better.
Given the “standard international keypad”, write a program to determine the phone number based on a user-supplied 7-letter phrase (example: glasses).
1
2 ABC
3 DEF
4 GHI
5 JKL
6 MNO
7 PQRS
8 TUV
9 WXYZ
*
0
#
------------------------------------------------------------------------------------------------
This is the design for code, please make it with these 3 functions
1. Main function
Get a word from the user and store it in a string variable “word”.
If the word cannot be changed into a number à “canChanged” function
Exit the program.
Change “word” variable into a phone number à “wordToNumber” function
Print the number.
2. \'canChanged\' function
---> check if the word can be changed into a phone number.
If the number of letters in “word” is not 7,
Return false.
If there is any character which is not alphabet
Return false.
Return true.
3. \'wordToNumber\' function
---> change a word into a phone number.
a string variable “word”, which will be changed into a phone number.
a string literal which is the result of change.
Declare a string variable “number”
Loop until accessing all letters in “word” is finished
Switch (word)
If a,b,c,A,B,C: stack 2 into “number”
If d,e,f,D,E,F: stack 3 into “number”
If g,h,i,G,H,I: stack 4 into “number”
If j,k,l,J,K,L: stack 5 into “number”
If m,n,o,M,N,O: stack 6 into “number”
If p,q,r,s,P,Q,R,S: stack 7 into “number”
If t,u,v,T,U,V: stack 8 into “number”
If w,x,y,z,W,X,Y,Z: stack 9 into “number”
Return “number.”
| 1 | 2 ABC | 3 DEF |
| 4 GHI | 5 JKL | 6 MNO |
| 7 PQRS | 8 TUV | 9 WXYZ |
| * | 0 | # |
Solution
Answer)
import java.util.Scanner;
public class StringToNumbers
{
private static Scanner sc;
public static void main(String[] args)
{
sc = new Scanner(System.in);
System.out.println(\" Please Enter The Phone Number (With Letters): \");
String phone_number = sc.nextLine(); //input word
phone_number = phone_number.toUpperCase(); //convert to upper case letter
int h=canChanged(phone_number); //check whether the input word length is 7 or not
if(h==1){
System.out.printf(\"%nOutput phone number for \'%s\' is \'%s\'\",
phone_number, wordToNumber(phone_number) //function to change the word to number
);
}
else
System.out.println(\"Can not be changed\");
}
public static int canChanged(String phone_number) //check the word length in 7 or not
{
int len=phone_number.length();
if(len==7)
return 1;
else
return 0;
}
public static long wordToNumber(String phone_number) //change word to number
{
long num = 0;
int strLen = phone_number.length();
for (int currCharacter = 0; currCharacter < strLen; currCharacter++)
{
char ch = phone_number.charAt(currCharacter);
if (Character.isLetter(ch))
{
switch(ch)
{
case \'A\' : case \'B\' : case \'C\' : num *= 10; num += 2; break; //rules to change the number
case \'D\' : case \'E\' : case \'F\' : num *= 10; num += 3; break;
case \'G\' : case \'H\' : case \'I\' : num *= 10; num += 4; break;
case \'J\' : case \'K\' : case \'L\' : num *= 10; num += 5; break;
case \'M\' : case \'N\' : case \'O\' : num *= 10; num += 6; break;
case \'P\' : case \'Q\' : case \'R\' : case \'S\' : num*= 10; num += 7; break;
case \'T\' : case \'U\' : case \'V\' : num *= 10; num += 8; break;
case \'W\' : case \'X\' : case \'Y\' : case \'Z\' : num*= 10; num += 9; break;
}
}
else if (Character.isDigit(ch))
{
num *= 10; num += Character.getNumericValue(ch);
}
else
{
System.out.println(\"Invalid character!\");
}
} // End of for loop
// Return actual number only at the end of the function
return num;
}// End of full_number function
}


