2017-01-09 1 views
0

Java에서 Palindrome 검사기를 만들려고하지만 입력 문자열과 비교하여 역방향 메서드를 비교할 때 오류가 발생하는 경우를 봅니다. . 심지어 내가 "racecar"와 같은 명백한 palindromes를 사용할 때조차도. 내 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()); 
} 
관련 문제