Как исправить ожидаемую ошибку <identifier> в строке 89 при использовании вариантов?
import java.util.Scanner;
public class MethodTestingLab {
public static void main(String[] args) {
int menuChoice, num1;
Scanner keyboardReader = new Scanner(System.in);
// Display Menu
System.out.println("Menu\n 1.chkNextInt\n 2.twoDigitNumber\n 3.big2Digits\n 4.reverseString\n 5.max3\n");
// User choice
System.out.print("Enter your choice ");
menuChoice = keyboardReader.nextInt();
// Cases
switch(menuChoice) {
case 4:
System.out.println("Given a three-lettered string, returns the string that is the reverse of its characters.");
System.out.print("Enter a string: ");
case4String = keyboardReader.next();
System.out.println(reverseString(case4String));
break;
}
System.out.println("End");
}
// Method 4
public static String reverseString(case4String) {
newString = case4String.charAt(2) + case4String.charAt(1) + case4String.charAt(0);
return newString;
}
}
// Как мне исправить ошибку идентификации в методе 4? Я не могу скомпилировать его, пока он не будет исправлен, и когда я попытался добавить String перед case4String, это вызвало гораздо больше ошибок, чем предыдущее.
1 ответ
Похоже, вы только изучаете Java, поздравляю! ccKep был прав, что вам не хватает нескольких идентификаторов. Чтобы определить переменную в Java, вы должны указать компилятору, какой тип переменная будет содержать. Так же, как вы определили menuChoice
а также num1
как тип int
, вы должны сделать то же самое для переменной case4String
а также newString
,
Другая проблема заключается в том, что вы не можете объединить char
введите с +
оператор в вашем reverseString
метод. Есть несколько способов это исправить. Один из способов получить String
от char
Тип это создать новый String
из char
массив.
// Method 4
static String reverseString(String case4String) {
char[] chars = {case4String.charAt(2), case4String.charAt(1), case4String.charAt(0)};
String newString = new String(chars); // and here.
return newString;
}
Или вы можете использовать одно из предложений от Reverse a string answer, предоставленных ccKep.
// Method 4
static String reverseString(String case4String) {
StringBuilder newStringBuilder = new StringBuilder(case4String); // and here.
return newStringBuilder.reverse().toString();
}
Это лучший ответ, потому что он не ограничивает вас трех-символьным ограничением, как вы должны делать это с вашим charAt
решение. Вот код с фиксированными идентификаторами и второе предлагаемое решение.
import java.util.Scanner;
public class MethodTestingLab {
public static void main(String[] args) {
int menuChoice, num1;
Scanner keyboardReader = new Scanner(System.in);
// Display Menu
System.out.println("Menu\n 1.chkNextInt\n 2.twoDigitNumber\n 3.big2Digits\n 4.reverseString\n 5.max3\n");
// User choice
System.out.print("Enter your choice ");
menuChoice = keyboardReader.nextInt();
// Cases
switch(menuChoice) {
case 4:
System.out.println("Given a three-lettered string, returns the string that is the reverse of its characters.");
System.out.print("Enter a string: ");
String case4String = keyboardReader.next();
System.out.println(reverseString(case4String));
break;
}
System.out.println("End");
}
// Method 4
public static String reverseString(String case4String) {
StringBuilder newStringBuilder = new StringBuilder(case4String); // and here.
return newStringBuilder.reverse().toString();
}
}