Blog_Banner_Asset
    Homebreadcumb forward arrow iconBlogbreadcumb forward arrow iconFull Stack Developmentbreadcumb forward arrow iconPalindrome Program in Java | Java Program To Check Polindrome

Palindrome Program in Java | Java Program To Check Polindrome

Last updated:
26th Feb, 2021
Views
Read Time
7 Mins
share image icon
In this article
Chevron in toc
View All
Palindrome Program in Java | Java Program To Check Polindrome

Introduction

Java has gained a lot of limelight among programmers because of its simplicity, architecture neutrality, platform independence, distributed execution, and reusability. Also, java has many predefined libraries for seamless programming. And everyone will be enthusiastic to code in such a language.

Now coming to our topic, we are going to write a java code to check if the given input is a palindrome or not.

A number or word is said to be a palindrome if it remains the same after reversing it. And we can implement a solution iteratively as well as recursively. So let’s get started!

Check out our free courses to get an edge over the competition

Ads of upGrad blog

Iterative Java Code

The idea is simple; we’ll declare a variable ‘reverse’ which stores the reversed number of our input.

We will multiply the reverse variable by 10(to fill the unit’s position with 0) in every iteration. Then, we will add the remainder of the input number after dividing it by 10. After adding the rest, we will divide the input number by 10 (to remove the number in the unit’s position).

We’ll stop the above algorithm when the input number becomes 0, and the number present in the reverse variable will be the reverse of the input number.

Check out upGrad’s Advanced Certification in Cloud Computing 

Explore Our Software Development Free Courses

public class upGrad{

public static void main(String[] args) {

int n=12221;

int reverse=0;

int temp=n;

while(temp>0){

reverse=reverse*10;

reverse=reverse+temp%10;

temp=temp/10;

}

if(reverse==n)

System.out.print(n+” is a palindrome”);

else

System.out.print(n+” is not a palindrome”);

}

}

In the above code, we’ve declared a variable ‘n’ which stores the initial number, and we’ve to check if the number n is a palindrome or not. In the while loop, we’ll follow the algorithm which we’ve discussed earlier. And finally, we are checking if the reversed number is equal to the initial number or not. If the changed number and the initial numbers are similar, we are printing it as a palindrome else, not a palindrome.

upGrad’s Exclusive Software Development Webinar for you –

SAAS Business – What is So Different?

 

Now, this code will work only for an integer input. And if we want to check if a given word is a palindrome or not, we’ve to deal with it using strings. And here’s the code to do that.

Check out upGrad’s Advanced Certification in Cyber Security

public class upGrad{

public static void main(String[] args) {

String s=”rotor”;

String reverse=new String();

for(int i=s.length()-1;i>=0;i–)

reverse=reverse+s.charAt(i);

if(s.equals(reverse))

System.out.print(s+” is a palindrome”);

else

System.out.print(s+” is not a palindrome”);

}

}

In the above code, we are appending the initial string’s characters from the tail to the head to the reverse string and checking if it is equal to the initial string or not. We have hardcoded the string with a word, but we can initialize it with user input using the scanner class.

Explore our Popular Software Engineering Courses

Recursive Java Code

In this implementation, we are going to compare the first and last characters. And if they are equal, then recur further for the remaining string.

But this logic will not work for the strings which have an odd number of characters. So if we include a base case, where we conclude a string as a palindrome, if the length of a string is one, i.e., the first and last characters’ position is the same. This would clear our issue with odd-sized strings because we’ll recur to the middle element and then conclude it as a palindrome since only a single character remains in the middle.

public class upGrad{

    public static boolean isPalindrome(String str, int low, int high){

        if(low==high)

            return true;

        if(str.charAt(low)!=str.charAt(high))

            return false;

        if(high-low>1)

            return isPalindrome(str,low+1,high-1);

        return true;

    }

public static void main(String[] args) {

String s1=”rotor”;

String s2=”programming”;

System.out.println(isPalindrome(s1,0,s1.length()-1));

System.out.println(isPalindrome(s2,0,s2.length()-1));

}

}

In the above code, we have written a function that expects a string, two integers as the parameters. And the two integers, low, high are the pointers that keep track of the characters which have to be checked. And if the names at the position low and high are equal.

we’ll call the same function with updated parameters such that the string is shrunk from both sides by one character. And if the pointers low and high meet each other or a single character is present between them, then we’ve reached till the middle of the string and concluding it as a palindrome.

In-Demand Software Development Skills

Now, let’s have a dry run of the code for the string “rotor”. Initially, the low is 0, and the high is 4. Since the character at 0th position (‘r’) is equal to the character at 4th position (‘r’), we’ll make a recursive call with low updated as low+1 and high updated as high-1.

Now, low is 1, and high is 3 since characters at those positions are equal, we’ll again make a recursive call. Now low is 2 and high is 2, and it triggers the base case where low is equivalent to high, so we’ll return true.

We can also implement a recursive function to check if an integer is a palindrome or not, and here’s the process to do that.

static boolean isPalindrome(int n, int rev, int temp){

        if(temp==0)

            return n==rev;

        rev=rev*10;

        return isPalindrome(n,rev+temp%10,temp/10);

    }

Note that, in the above function, initially n and temp are the same. Because at last, we’ve to compare the reverse number with the initial number, so all the computations are performed on the same variable. The initial number should not be altered.

Also Read: Java Project Ideas & Topics

Ads of upGrad blog

Learn Software Courses online from the World’s top Universities. Earn Executive PG Programs, Advanced Certificate Programs, or Masters Programs to fast-track your career.

Read our Popular Articles related to Software Development

Conclusion

We’ve understood the definition of palindrome, walked through iterative and recursive codes for checking if a string/number is a palindrome or not. We know the code by a dry run of sample example. Now that you are aware of implementing a code to check palindrome try implementing it using the scanner class and try coding it using OOP concepts.

If you wish to improve your Java skills, you need to get your hands on these java projects. If you’re interested to learn more about Java, full-stack development, check out upGrad & IIIT-B’s Executive PG Program in Full-stack Software Development, which is designed for working professionals and offers 500+ hours of rigorous training, 9+ projects, and assignments, IIIT-B Alumni status, practical hands-on capstone projects & job assistance with top firms.

Profile

Rohan Vats

Blog Author
Software Engineering Manager @ upGrad. Passionate about building large scale web apps with delightful experiences. In pursuit of transforming engineers into leaders.

Frequently Asked Questions (FAQs)

1What is a palindrome?

Palindromic sentence is a literary composition, phrase, verse, or word, reading the same backward or forward. A palindrome is a type of word play, specifically a word or phrase (sentence) which reads the same backward or forwards. A palindrome is a word, phrase, number, or other sequence of characters which reads the same backward or forward. For example, A man, a plan, a canal, Panama! is a palindrome. Some palindromes are not words, such as the number 106601. Some palindromes are phrases, such as Madam, I'm Adam.

2How to prepare for a Java interview?

If you want to be a Java expert, you need to make sure a few things are in order first. First and foremost, you need to have a good working knowledge of the Java language. Secondly, you should have a good understanding of the Java API. You don't have to have an absolute mastery of the API, but you should have an understanding of what's available and when to use which class. Finally, you need to have a deep understanding of the Java Virtual Machine. For example, you should be able to write an interpreter for a simple language. If you're interviewing for a compiler development position, you're off the hook.

3How to write good Java programs?

Some of the best practices while writing the program in java are: Always use 'public class' to start the class. Never use 'public static void main' inside a class. Never use 'this' keyword inside the class. Never use 'final' modifier on methods. Never use the 'static' modifier on the instance variables. Never make variables 'public' unless it is absolutely necessary. Always have a good naming convention. Never make a variable more than one letter with a numeric suffix. Avoid making variables with more than one word. Never use 'this' keyword inside the method. Never use 'break' keyword.

Explore Free Courses

Suggested Blogs

8 Exciting Full Stack Coding Project Ideas & Topics For Beginners
3970
A Full stack developer is an engineer who can design and develop an end-to-end application independently by handling all the work of coding, databases
Read More

by upGrad

19 Feb 2024

17 Interesting HTML Project Ideas & Topics For Beginners [2024]
414722
Summary In this article, you will learn 10 Interesting HTML Project Topics. Take a glimpse below. A tribute page A survey form Technical documentati
Read More

by Rohan Vats

19 Feb 2024

How to Open json File in Excel
96571
What is JSON? JSON (JavaScript Object Notation) is a file format that is used for storing and exchanging data in the network. It is used to send data
Read More

by Rohan Vats

19 Feb 2024

JSP vs Servlet: Difference Between JSP & Servlet [2024]
52570
Websites are collections of static files, for example, images, graphics, and HTML files. These websites are referred to as web applications if they pr
Read More

by Rohan Vats

19 Feb 2024

Java Developer Salary in India in 2024 [For Freshers & Experienced]
900528
Wondering what is the range of Java developer salary in India? From choosing your first programming language to writing apps for Android and several
Read More

by Rohan Vats

19 Feb 2024

Polymorphism In OOPS: What is Polymorphism [Detailed Explanation]
124314
Polymorphism in OOPs is inseparable and an essential concept of every object-oriented programming language. An object or reference basically can take
Read More

by Rohan Vats

19 Feb 2024

Literals In Java: Types of Literals in Java [With Examples]
8123
Summary: In this article, you will learn about Literals in Java. Literals in Java Integral Literals Floating-Point Literals Char Literals String Lit
Read More

by Rohan Vats

19 Feb 2024

Top 30 Exception Handling Interview Questions and Answers [For Freshers & Experienced]
35815
Exception handling is a concept that is implemented in algorithms to handle possible runtime errors, which may disrupt the normal flow of a program. S
Read More

by Rohan Vats

19 Feb 2024

Top 40 MySQL Interview Questions & Answers For Beginners & Experienced [2024]
129708
Have a Data engineering or data science interview coming up? Need to practice some of the most asked MySQL interview questions? The article compiles t
Read More

by Rohan Vats

19 Feb 2024

Schedule 1:1 free counsellingTalk to Career Expert
icon
footer sticky close icon