2013-04-04 18 views
2

所以我做在Java中的迴文檢查,而我似乎打了一個路障,這是我到目前爲止的代碼:迴文檢查的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);」上遇到不兼容的類型錯誤;我怎麼會得到它打印下面的輸出語句真或假?

+0

隨時隨地玩弄它。http://ideone.com/oP8oxV – 2013-04-04 17:32:55

回答

7

您的palindrome方法返回boolean,但您試圖將其分配給String。將R變量的定義更改爲boolean

+0

謝謝。我仍然感到困惑,因爲我是新手。我會記住這一點,以備將來使用,它工作,順便說一句。 – 2013-04-04 17:04:25

2

由於字符在Java中的字符串(或陣列)0索引,最後一個字符是在長度 - 1

嘗試

int t = word.length() - 1; 

糟糕,這不是問題你有。但是,一旦類型錯誤得到解決,您會立即注意到它。

+0

我也注意到了這一點,雖然在我看到這個之前。無論如何,感謝您指出。 – 2013-04-04 17:05:18

1

word.charAt(t - 1),否則你重新計算字符串,也返回「true」;如果您想使用String作爲結果類型,則返回「false」;