Program: Check whether String is palindrome using recursion
package beginnersbook.com; import java.util.Scanner; class PalindromeCheck { //My Method to check public static boolean isPal(String s) { // if length is 0 or 1 then String is palindrome if(s.length() == 0 || s.length() == 1) return true; if(s.charAt(0) == s.charAt(s.length()-1)) /* check for first and last char of String: * if they are same then do the same thing for a substring * with first and last char removed. and carry on this * until you string completes or condition fails * Function calling itself: Recursion */ return isPal(s.substring(1, s.length()-1)); /* If program control reaches to this statement it means * the String is not palindrome hence return false. */ return false; } public static void main(String[]args) { //For capturing user input Scanner scanner = new Scanner(System.in); System.out.println("Enter the String for check:"); String string = scanner.nextLine(); /* If function returns true then the string is * palindrome else not */ if(isPal(string)) System.out.println(string + " is a palindrome"); else System.out.println(string + " is not a palindrome"); } }
Output:
Enter the String for check: qqaabb qqaabb is not a palindrome
Output 2:
Enter the String for check: cocoococ cocoococ is a palindrome
Avi says
Can you add an ignorecase to your program to ensure that something in capital letters still can be a palindrome like Racecar
joseph says
thanks, for giving me a project to turn in :)
Theodora Baxevani says
Hello friends!I would like to ask why you use length() instead of .length
Jaideep says
because it is the need to hava a null value as an argument to a method! In short, it is what java requires!
amit saini says
.length is used for to find the length of a array. and the method length() is used for to find the length of a String
Theodora Baxevani says
Well thank you a lot amit saini !
Learner says
Could you please explain how substring function has worked in this program? Also why is it necessary to return isPal, why cant we simply call isPal? (I know it gives incorrect result when isPal is just called, but wanted to know how the ‘return isPal’ statement is working in this program)