需要电话号码来编译一个短语而不仅仅是数字

时间:2017-04-05 00:07:19

标签: java

这是我的代码

import java.util.*;
public class PhoneKeypad {

public static void main(String[] args){

    System.out.print("Enter an uppercase letter ");

    Scanner input = new Scanner(System.in);

    String phNumber = input.next();

    String output = "";

    for(int i = 0 ; i < phNumber.length() ; i++){

        char ch = Character.toUpperCase(phNumber.charAt(i));

        if(Character.isLetter(ch)){
            int digit = getNumber(ch);

            output = output + digit;

        }

        else{

            output = output + ch;

        }

    }

      System.out.println(output);

}

public static int getNumber(char upperCaseLetter){

    if(upperCaseLetter == 'A' || upperCaseLetter == 'B'

                                || upperCaseLetter == 'C')

        return "The Corresponding number is 2";

    else if(upperCaseLetter == 'D' || upperCaseLetter == 'E'

                                     || upperCaseLetter == 'F')

        return "The Corresponding number is 3";

    else if(upperCaseLetter == 'G' || upperCaseLetter == 'H'

                                     || upperCaseLetter == 'I')

        return "The Corresponding number is 4";

    else if(upperCaseLetter == 'J' || upperCaseLetter == 'K'

                                     || upperCaseLetter == 'L')

        return  "The Corresponding number is 5";

    else if(upperCaseLetter == 'M' || upperCaseLetter =='N'

                                     || upperCaseLetter == 'O')

        return 6 "The Corresponding number is 6";

    else if(upperCaseLetter == 'P' || upperCaseLetter == 'Q'

                                     || upperCaseLetter == 'R')

        return "The Corresponding number is 7";

    else if(upperCaseLetter == 'S' || upperCaseLetter =='T'

                                     || upperCaseLetter == 'U')

        return "The Corresponding number is 8";
    else if(upperCaseLetter == 'V' || upperCaseLetter == 'W'

          || upperCaseLetter == 'Y' || upperCaseLetter == 'Z')

        return "The Corresponding number is 9";

    else

        return 0;

}

}

这给了我错误。我需要输出说相应的数字是_ 而不只是数字

这些是我得到的错误类型

PhoneKeypad.java:67: error: ';' expected
            return 6 "The Corresponding number is 6";
                    ^
PhoneKeypad.java:69: error: 'else' without 'if'
        else if(upperCaseLetter == 'P' || upperCaseLetter == 'Q'
        ^
PhoneKeypad.java:69: error: illegal start of type
        else if(upperCaseLetter == 'P' || upperCaseLetter == 'Q'
             ^
PhoneKeypad.java:69: error: <identifier> expected
        else if(upperCaseLetter == 'P' || upperCaseLetter == 'Q'
               ^
PhoneKeypad.java:69: error: ';' expected
        else if(upperCaseLetter == 'P' || upperCaseLetter == 'Q'
                ^
PhoneKeypad.java:69: error: illegal start of type
        else if(upperCaseLetter == 'P' || upperCaseLetter == 'Q'
                                ^
PhoneKeypad.java:69: error: <identifier> expected
        else if(upperCaseLetter == 'P' || upperCaseLetter == 'Q'
                                  ^
PhoneKeypad.java:69: error: ';' expected
        else if(upperCaseLetter == 'P' || upperCaseLetter == 'Q'
                                      ^
PhoneKeypad.java:69: error: <identifier> expected
        else if(upperCaseLetter == 'P' || upperCaseLetter == 'Q'
                                                         ^
PhoneKeypad.java:69: error: illegal start of type
        else if(upperCaseLetter == 'P' || upperCaseLetter == 'Q'
                                                             ^

3 个答案:

答案 0 :(得分:0)

我建议下载诸如“Eclipse”之类的IDE来帮助您编写代码。它将查明代码中存在的许多错误。

public static int getNumber(char upperCaseLetter)

关于您的问题,请移除int并将其替换为'String'或'void'

答案 1 :(得分:0)

请看第67行。当你应该Customer

时,你有return 6 "The Corresponding number is 6";

如果要返回字符串而不是整数,只需更改方法签名即可。 即return "The Corresponding number is 6";而不是public static String getNumber(char upperCaseLetter){

答案 2 :(得分:0)

getNumber的返回值是字符串,但该方法以及main方法需要一个int值。例如,以下内容应该更好:

public static int getNumber(char upperCaseLetter) {
    if (
            upperCaseLetter == 'A' 
            || upperCaseLetter == 'B' 
            || upperCaseLetter == 'C') {
        return 2;
    } else if (
            upperCaseLetter == 'D' 
            || upperCaseLetter == 'E' 
            || upperCaseLetter == 'F') {
        return 3;
    }
    //etc.
    return 0;       
}

但是,由于在此方法中使用了多个if / else,因此您还可以考虑使用switch case:

public static int getNumber2(char upperCaseLetter) {
    switch (upperCaseLetter) {
        case 'A':case 'B':case 'C':
            return 2;
        case 'D':case 'E':case 'F':
            return 3;
        //etc.
        default:
            return 0;
    }
}