2013-11-01 2 views
3

Я пытаюсь написать метод, чтобы увидеть, является ли строка палиндром (слова, которые могут быть правильно записаны назад, например, «гоночный автомобиль». Я не могу найти . ошибка поэтому, возможно, еще один набор глаз поможет Вот код:Базовая Java: Ошибка: класс, интерфейс или Enum Ожидаемый

public boolean isPalindrome(String str){ 
    numberofQuestions++; 
    int n = str.length(); 
    for(int i = 0; i < n/2; i++) 
    if (str.charAt(i) != str.charAt(n-i-1)) return false; 
    return true; 
} 

EDIT: Скриншот ошибки:

enter image description here

Начало класса:

public class Geek{ 
private String name; 
private int numberofQuestions=0; 

Последняя редакция: найдена дополнительная «{» внутри одного из методов. Спасибо всем за вашу помощь!

+1

выглядит ОК для меня. –

+0

Я предполагаю, что числоofQuestions определено –

+0

Какова цель 'numberofQuestions ++' ?! #HighlyCurious – SudoRahul

ответ

2

Метод должен быть полностью заключен внутри класса

public class Geek { 
    private String name; 
    private int numberofQuestions = 0; 

     public boolean isPalindrome(String str) { 
      numberofQuestions++; 
      int n = str.length(); 
      for (int i = 0; i < n/2; i++) 
       if (str.charAt(i) != str.charAt(n - i - 1)) 
        return false; 
      return true; 
     } 
    } 
+2

Это не сработает, потому что 'numberofQuestions' не инициализируется. – Justin

+0

@Quincunx Необходимо инициализировать только локальные переменные. Поля имеют значение по умолчанию, если оно явно не инициализировано. –

+0

@Quincunx numberofQuestions будет инициализироваться 0 автоматически, потому что его переменная класса – SpringLearner

8

Бьюсь это то, что связано с отсутствующими скобками, или фигурные скобки, закрывающей тело класса перед началом этого определения метода.

+0

вы выигрываете ставку. идеально. Спасибо –

+0

вы выигрываете ставку. идеально. Спасибо –

+0

Я не могу поверить, что этот бесполезный ответ является принятым после всех этих лет. –

0

Сделать isPalindrome() функцией статической.

Вот пример:

public class Sample { 

    private static int numberofQuestions; 

    public static void main(String[] args) 
    { 
     String str = "racecar"; 
     String str2 = "notpalindrome"; 
     boolean test = isPalindrome(str); 
     boolean test2 = isPalindrome(str2); 
     System.out.println(str + ": " + test); 
     System.out.println(str2 + ": " + test2); 
    } 

    public static boolean isPalindrome(String str) { 
     numberofQuestions++; 
     int n = str.length(); 
     for (int i = 0; i < n/2; i++) 
      if (str.charAt(i) != str.charAt(n - i - 1)) 
       return false; 
     return true; 
    } 
} 

Выход:

racecar: true 
notpalindrome: false 
0

Вы должны проверить, что фигурные скобки, правильно ли она закончилась после обхвата, методы и класса.

0

Я думаю, что есть проблемы в фигурных скобках. Вы не закончили скобки главного класса Geek {}.

Проверьте это:

public class Geek 
    { 
     private String name; 
     private int numberofQuestions = 0; 

      public boolean isPalindrome(String str) 
      { 
       numberofQuestions++; 
       int n = str.length(); 
       for (int i = 0; i < n/2; i++) 
        if (str.charAt(i) != str.charAt(n - i - 1)) 
         return false; 
       return true; 
      } 
    } 
Смежные вопросы