public class RecursivePalindromeUsingSubstring {
  public static boolean isPalindrome(String s) {
    if (s.length() <= 1) // Przypadek bazowy
      return true;
    else if (s.charAt(0) != s.charAt(s.length() - 1)) // Przypadek bazowy
      return false;
    else
      return isPalindrome(s.substring(1, s.length() - 1));   
  }

  public static void main(String[] args) {
    System.out.println("Czy pole jest palindromem? "
      + isPalindrome("pole"));
    System.out.println("Czy ABBA jest palindromem? "
      + isPalindrome("ABBA"));
    System.out.println("Czy a jest palindromem? " + isPalindrome("a"));
    System.out.println("Czy aba jest palindromem? " +
      isPalindrome("aba"));
    System.out.println("Czy ab jest palindromem? " + isPalindrome("ab"));
  }
}