Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In Java lang Standard telephone keypads contain the digits zero through nine. Th

ID: 3920015 • Letter: I

Question

In Java lang

Standard telephone keypads contain the digits zero through nine. The numbers two through nine each have 3~4 letters (case insensitive) associated with them. Many people find it difficult to memorize phone numbers, so they use the correspondence between digits and letters to develop seven-letter words that correspond to their phone numbers. For example, a person whose telephone number is 686-2377 might remember it as "NUMBERS."

2 ABC
3 DEF
4 GHI
5 JKL
6 MNO
7 PQRS 8 TUV

9 WXYZ

Each seven-letter word corresponds to exactly one seven-digit telephone number, but a seven-digit number corresponds to many seven-letter strings, most of which are not words.

Create a Project2 class under the project package.

In this project you will develop a program which will find all the corresponding English

words given any specific telephone number. Here are the detailed requirements:

In the Project2 class you will create a static void test() method.

The test method will first ask the user to type in through keyboard a 7-digit telephone

number.

If the number typed in by the user is not 7 digits or the number contains some number

of the digit ‘0’ or ‘1’, then your program reports an error and asks to type in another

number.

If the number typed in by the user is a 7-digit telephone number made up of the digits

‘2’ through ‘9’, then your program will print out all the English words corresponding to the telephone number (and the total number of them), using the given English word library in the “COSC240_P2_EnglishWordList.txt”.

Explanation / Answer

import java.io.*;
import java.util.*;

public class Project2{


  
   public static void test(){

       try {
          String[] data = {"","","ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"};
          ArrayList<String> words = new ArrayList<String>();
          FileInputStream fin = new FileInputStream("COSC240_P2_EnglishWordList.txt");
          Scanner fc = new Scanner(fin);
          while(fc.hasNextLine()){
             String word = fc.nextLine();
             words.add(word);
          }
          fc.close();
          Scanner sc = new Scanner(System.in);
          String num = "";
          while(true){
             System.out.print("Enter a 7-digit phone number(0 and 1 are not allowed as digits):");
             num = sc.nextLine();
             int valid = 1;
             if (num.length() > 7){
                 valid = 0;
             }
             for (int i = 0; i < num.length(); i++){
                 if (num.charAt(i) < '2' || num.charAt(i) > '9'){
                    valid = 0;
                    break;
                 }
             }
             if (valid == 0)
                System.out.println("Incorrect input ");
             else
                break;
          }
          int count = 0;
          for (int i = 0; i<words.size(); i++){
              String w = words.get(i);
              int valid = 1;
              for (int j = 0; j<w.length(); j++){
                  int a = Character.getNumericValue(num.charAt(j));
                  String s = data[a];
                  String s1 = "" + w.charAt(j);
                  if (!s.contains(s1)){
                     valid = 0;
                     break;
                  }
              }
              if (valid == 1){
                 System.out.println(w);
                 count++;
              }
          }
          System.out.println("Total number of words: " + count);
       }
       catch (Exception e){
          e.printStackTrace();
       }
      
   }
   public static void main(String[] args){
        test();
   }
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote