2013-04-04 3 views
2

Так что я делаю палиндром проверки в Java, и я, казалось, достиг заграждение это мой код до сих пор:Palindrome Checker Java логическое понимание

public class StringUtil 
{ 

public static void main(String[] args) 
{ 
    System.out.println("Welcome to String Util.");  
    Scanner word = new Scanner(System.in); 

    String X = word.nextLine();  
    String R = palindrome(X); 

    System.out.println(); 
    System.out.println("Original Word: " + X);  
    System.out.println("Palindrome: " + R); 



} 


public static boolean palindrome(String word) 
{ 
    int t = word.length(); //length of the word as a number 
    int r = 0; 


    if(word.charAt(t) == word.charAt(r)) 
    { 
     return true; 
    } 
    else 
    return false; 
} 

до сих пор я только хочу, чтобы проверить если первая буква совпадает с последней, но когда я скомпилирую ее, я получаю ошибку несовместимых типов на «String R = palindrome (X)»; Как я могу заставить его напечатать true или false в выводе ниже?

+0

Получил свободу, чтобы поиграть с ним., Http://ideone.com/oP8oxV –

ответ

7

Ваш метод palindrome возвращает boolean, но вы пытаетесь присвоить его String. Измените определение переменной R на boolean.

+0

спасибо. Я все еще запутался, потому что я новичок в этом. Я буду держать это в виду для будущего использования, это сработало, кстати. –

2

Поскольку символы 0 индексированные в строке (или массива) в Java, последний символ в длине - 1

попробовать

int t = word.length() - 1; 

К сожалению, это не проблема у вас есть. Однако вы сразу заметите это сразу после устранения ошибки типа.

+0

Я заметил это также, хотя прежде, чем увидел это. Спасибо, что указали это в любом случае. –

1

word.charAt (t - 1), иначе вы перечитывали строку, также возвращали «true»; и вернуть «false», если вы хотите использовать String в качестве типа результата;