Как исправить ожидаемую ошибку <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();
    }

}
Другие вопросы по тегам