这是我的代码
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'
^
答案 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;
}
}