ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

How to check whether a given string is palindrome or not through a Java program ?.

Updated on September 17, 2014

What do we mean by Palindrome ?.

A palindrome is a word, whose meaning is interpreted the same way in either reverse or forward direction.

For example :

“stats” is a palindrome string as reversing “stats” produce same string.

“sports” is not a palindrome string as reversing “sports” produce “strops” which is different from original string.

Palindrome String Example -

In this Java tutorial, you will learn different ways to code a program that checks whether a string is palindrome or not. In this Java tutorial, you can watch complete video explaining various ways of doing a palindrome test over a given string. Java source code for implementing this program is been shown below.

In this tutorial, you will learn three different ways to perform a check over string palindrome. The output of all three source code are same. Output of the program is depicted in the figure below.

Video tutorial - String palindrome check

Method 1 - Implementing through StringBuilder

import java.util.Scanner;

public class Palindrome_1 {

   public static void main(String[] args) {
       
	Scanner scanner = new Scanner(System.in);
	System.out.print("Enter string : ");
		
	String s1 = scanner.nextLine();
	StringBuilder s2 = new StringBuilder(s1);
		
	s2.reverse();
		
	if(s1.equals(s2.toString())){
		System.out.println("String is palindrome !!!");
	} else {
		System.out.println("String is not palindrome !!!");
	}
   }
}

Steps to implement -

1. Create a scanner object. It reads string entered by user on the Java console.

2. Create a StringBuilder object from the string entered by the user.

3. Call StringBuilder reverse method to reverse contents of the string entered by the user.

4. Compare both the string with each other. If strings are equal, it means string entered by user is palindrome. If strings are not equal, it means string entered by user is not palindrome.

Method 2 - Implementing through reverse for loop

import java.util.Scanner;

public class Palindrome_2 {

   public static void main(String[] args) {
       
	Scanner scanner = new Scanner(System.in);
	System.out.print("Enter string : ");
		
	String s1 = scanner.nextLine();
	String s2 = ""; 
		
	for(int i = s1.length() - 1; i >= 0; i--){
		s2 = s2 + s1.charAt(i);
	}
		
	if(s1.equals(s2)){
		System.out.println("String is palindrome !!!");
	} else {
		System.out.println("String is not palindrome !!!");
	}
   }
}

Steps to implement -

1. Create a scanner object. It reads string entered by user on the Java console.

2. Create a different empty string.

3. Apply for loop over the string entered by the user and concatenate its contents in reverse direction with different string created in step 2.

4. Compare both the string with each other. If strings are equal, it means string entered by user is palindrome. If strings are not equal, it means string entered by user is not palindrome.

Method 3 - Implementing through half for loop

import java.util.Scanner;

public class Palindrome_3 {

   public static void main(String[] args) {
       
	Scanner scanner = new Scanner(System.in);
	System.out.print("Enter string : ");
		
	String s1 = scanner.nextLine();
	int start = 0;
	int end = s1.length() - 1;
	int middle = (start + end) / 2;
	int i;

	for(i = start; i <= middle; i++){
		if(s1.charAt(start) == s1.charAt(end)){
         		start++;
			end--;
		} else {
			break;
		}
	}
	if(i == middle + 1){
		System.out.println("String is palindrome !!!");
	} else {
		System.out.println("String is not palindrome !!!");
	}
   }
}

Steps to implement -

1. Create a scanner object. It reads string entered by user on the Java console.

2. Create 4 different int variables as, start, end, middle and i.

3. Apply for loop over the string entered by the user till it reaches middle. Check for each mirror value from start and end of string.

4. Compare each character with each other. After for loop exits, if value of i is equal to middle + 1 , it means string entered by user is palindrome. Else, it means string entered by user is not palindrome.

Output of the program -

Explanation of output -

After running above Java program, it prompts on the Java console to enter a string. This string is been entered by user to check for its palindrome. As soon as, after providing a string, when user hit enter key, result is displayed on the Java console that whether string is palindrome or not.

In the first output, when user enters string as "stats", and press enter key, it displays that string entered by user is palindrome.

In the second output, when user enters string as "sports", and press enter key, it displays that string entered by user is not palindrome.

Comments

    0 of 8192 characters used
    Post Comment

    No comments yet.

    Click to Rate This Article