2017-01-09 27 views
0

我想在Java中做一個Palindrome檢查器,但是當我檢查與輸入字符串相比的反向方法以查看它們是否相等時,我得到錯誤。即使當我使用像「賽車」這樣明顯的迴文。我的逆向方法使用遞歸來反轉輸入字符串。Java遞歸方法似乎沒有返回一個確切的字符串

public class Palindrome 
{ 
    public static String reverse(String input) 
    { 
     if(input.length() == 1) 
      return input; 
     return reverse(input.substring(1)) + input.charAt(0); 
    } 

    public static boolean isPalindrome(String input) 
    { 
     if(Palindrome.reverse(input) == input) 
      return true; 
     return false; 
    } 

    public static void main(String args[]) 
    { 
     System.out.println(Palindrome.isPalindrome("racecar")); 
    } 
} 
+0

使用.equals方法 – AndroidRuntimeException

回答

0

使用.equals()代替==來修復您的代碼。

注意,你可以凝聚你的代碼是這樣的:

public static boolean isPalindrome(String str) { 
    return str.equals(new StringBuilder(str).reverse().toString()); 
}