2015-10-30 2 views
1

Я понятия не имею, почему следующий метод не работает. Он показывает:Проверьте, является ли строка палиндром (с использованием методов)

Palindrome.java:97: error: <identifier> expected

Метод принимает параметр, который представляет собой строку и должна возвратить true или false, если при условии, строка палиндром.

public static boolean checkPalindrome(checkString) { 
    boolean test = true; 
    int left = 0; 
    int right = checkString.length() - 1; 
    while (left < right && test) { 
     if (checkString.charAt(left) != checkString.charAt(right)) { 
      test = false; 
     } 
     right--; 
     left++; 
    } 
    return test; 
} 
+0

Что вы подразумеваете под словом "not working"? Что он делает, что он не должен делать? Любые ошибки? – RealSkeptic

+0

Когда вы разместили вопрос, у вас не было типа данных в вашем методе. Это опечатка? – sam

+0

@Tunaki Вы не должны изменять источник, кроме отступа. Вы просто устранили причину проблемы. – RealSkeptic

ответ

3

ошибка в первой линии, должно быть:

public static boolean checkPalindrome(String checkString) 

вы должны предоставить тип данных перед параметром^

3

Проблема эта линия

public static boolean checkPalindrome(checkString) 

Должно быть

public static boolean checkPalindrome(String checkString) 

Просто предложение, но вы также можете уменьшить переменные, которые вы используете

int len = checkString.length(); 
for (int i = 0; i < len/2; i++) { 
    if (checkString.charAt(i) != checkString.charAt(len - i -1)) { 
     return false; 
    } 
} 
return true; 
+0

спасибо брату, это путь более эффективный :) –

+0

Эффективный? Нет, поскольку цикл for, а также цикл while повторяется до 'length/2'. Удобочитаемый? да – sam

3

Я думаю, вы допустили ошибку в первой строке, он должен быть:

public static boolean checkPalindrome(String checkString) 

вы должны предоставить тип данных перед параметром^

Смежные вопросы