Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

助けてください〜

In this problem, you are to program a class named PhoneToCode with a method printWords that will print out all of the possible letter combinations that map to the phone number given as a command line argument, using the mapping between letters and digits on a telephone keypad. As a bonus, the method will return a count of the number of combinations printed. 

The specific requirements about the listing are: 

All letters appearing in the list are upper case. 
The digits zero and one in the original number are left as digits since there is no letter mapping for them on the keypad. 
Each digit (other than zero and one) in the original number lead to combinations using the corresponding keypad letters. 
All other characters in the original number are left as is. 
The PhoneToCode constructor takes a String value representing the original phone number. 
The list should be presented as shown, with 3 or 4 combinations per line, separated by blanks. A count of the total number of combinations should also be presented. 
Here are some examples: 

> java PhoneToCode 364
DMG  DMH  DMI
DNG  DNH  DNI
DOG  DOH  DOI
EMG  EMH  EMI
ENG  ENH  ENI
EOG  EOH  EOI
FMG  FMH  FMI
FNG  FNH  FNI
FOG  FOH  FOI
Total combinations: 27


This example has zeroes:
> java PhoneToCode 40-4003
G0-G00D  G0-G00E  G0-G00F
G0-H00D  G0-H00E  G0-H00F
G0-I00D  G0-I00E  G0-I00F
H0-G00D  H0-G00E  H0-G00F
H0-H00D  H0-H00E  H0-H00F
H0-I00D  H0-I00E  H0-I00F
I0-G00D  I0-G00E  I0-G00F
I0-H00D  I0-H00E  I0-H00F
I0-I00D  I0-I00E  I0-I00F
Total combinations: 27



The phone number to be translated is given as a command line argument. Start with the code in PhoneToCode.java. 

Constraints and Hints

The PhoneToCode constructor should translate any lower case characters to upper case. 

The printWords method is public and takes no arguments. It should call a private recursive method to print all the possibilities. Hint on the recursion: successively map digit to letter possibilities by using two arguments to the recursive method, the mapped and unmapped portion of string. Note that you cannot print anything until you have mapped all digits. 

//CODE

// PhoneToCode: map letters and digits on a phone keypad

public class PhoneToCode {

    // Use a table of Strings for the mapping from digits
    // to their possible letters.

    // The characters making up the phone number
    private String phoneNumber;

    // Constructor takes a String consisting of letters and digits
    public PhoneToCode( String s ) {
        // Map all letters to upper case

    }

    // Print all the letter configurations for the number
    public int printWords() {
        // Call the private recursive method
        // What do you think the arguments ought to be?
    }

    // Recurive method to print the letter configurations
    private int printWords(String mapped, String unmapped) {
        // What is the base case and what is the recursion?

        // Don't forget to keep track of the count
    }


    public static void main(String[] args) {
        if (args.length < 1) {
            System.err.println("Usage: java PhoneToCode \"number\"");
            return;
        }
        
        PhoneToCode phone = new PhoneToCode(args[0]);
        int count = phone.printWords();
        System.out.println("Total combinations: " + count);
    }
}


Use an array of Strings to encode the mapping between letters and digits. 

3

回答

78532

閲覧

3件の回答

評価

0

どこの国の人でしょうか。

要するにPhoneToCodeクラスを完成させよということらしいですが…。
面倒なんで仕様は読んでませんが、例示を見ると
3のところがD, E, Fになり、
4のところがG, H, Iになり、
6のところがM, N, Oになり、
0と-はそのまま…?
2はA, B, Cで5はJ, K, L?すると1は…?

日本語で明確に書いてもらわないと、難しそうですね。

評価

0

>Use an array of Strings to encode the mapping between letters and digits. 

「String配列を使って、文字と数字の間をマッピングしたコードを教えてくれ」と言ってるのか?

これは「質問」というより「お願い」かな?
mioさんも言われているが、仕様が曖昧だし、「質問」でもなさそうだし、対応できないかなぁ・・・

なにより、回答を日本語で書いて理解できるとも思えないのだが・・・

評価

0

読めないから代わりに読んでくれと言っているのか・・
解いてくれと言っている・・のではなさそうな気もするし
はっつけて遊んでいるだけかもだし・・(意図が示されてなさそうだし)

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。