2017-01-09 5 views
0

JavaでPalindromeチェッカーを作成しようとしていますが、逆のメソッドを入力文字列と比較して同等かどうかを確認すると、 。私が「racecar」のような明白な回文を使うときでさえ。私のreverseメソッドは再帰を使用して入力文字列を逆転させます。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()); 
} 
関連する問題