Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

java
communitycreator

How to check if a string is a palindrome in Java

Sumit Sharma

In this shot, we will discuss how to check whether a string is a palindrome or not in Java. A palindrome is a string that reads exactly the same, whether it is read from left to right or right to left.

Examples

“madam” is a palindromic string because it reads the same forwards and backward. Other palindromic strings are “anna,” “civic,” “level,” “mom,” “noon,” and “racecar.”

However, if we take a different example like “programmer,” it reads differently if we read it forward and backward. Therefore, “programmer” is not a palindrome.

Solution approach

We can use the isPalindrome() function to check if a string is a palindrome. We pass our input string as an argument and the function will return true if the string is a palindrome and false otherwise.

Steps

  1. Take a string as input.
  2. Compare the first and the last character of the string. If they are equal, then compare the second and the second last character of the string, and so on, until we get to the middle of the string.
  3. If the characters do not match at any iteration, then the string is not a palindrome.

Code

Let’s look at the code below to better understand.

import java.util.Scanner;
 
class palindrome {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("Enter a string as an input to check whether it is palindrome or not");
        String input= scanner.nextLine();
        //checking whether palindrome or not
        if(isPalindrome(input))
        {
            System.out.println(input+" is a palindrome string");
        }
        else
        {
            System.out.println(input+" is not a palindrome string");
        }
    }
 
    public static boolean isPalindrome(String str) {
        int left = 0, right = str.length() - 1;
        
        while(left < right)
        {
            if(str.charAt(left) != str.charAt(right))
            {
                return false;
            }
            left++;
            right--;
        }
        return true;
    } 
}

Enter the input below

Explanation

Enter a string in the input section to generate an output.

  • In line 1 we import the java.util.Scanner class to read input from the user.

  • In line 7 inside the main function, we create a Scanner object to take the input string from the user and store that input in a String input variable.

  • In line 9 we call the isPalindrome() function, which returns true if the input is actually a palindrome.

  • In lines 19 to 31 we define the isPalindrome() function. In this function, we initiate two indexes, left and right, and give the values 0 and str.length()-1, repectively.

  • Then, we run a while loop until the left index is less than the right index, and compare the character at the left index and the character at the right.

  • If the characters are not equal at any point, we return false; otherwise, we return true.

In this way, we can check whether a string is a palindrome in Java.

RELATED TAGS

java
communitycreator
RELATED COURSES

View all Courses

Keep Exploring