beginnersbook.com

  • Home
  • All Tutorials
    • Learn Servlet
    • Learn JSP
    • Learn JSTL
    • Learn C
    • Learn C++
    • Learn MongoDB
    • Learn XML
    • Learn Python
    • Learn Perl
    • Learn Kotlin
  • Core Java
  • OOPs
  • Collections
  • Java I/O
  • JSON
  • DBMS

java program to check palindrome string using Stack, Queue, for or while loop

By Chaitanya Singh | Filed Under: Java Examples

In this tutorial we will see programs to check whether the given String is Palindrome or not. Following are the ways to do it.
1) Using Stack
2) Using Queue
3) Using for/while loop

Program 1: Palindrome check Using Stack

import java.util.Stack;
import java.util.Scanner;
class PalindromeTest {

    public static void main(String[] args) {

    	System.out.print("Enter any string:");
        Scanner in=new Scanner(System.in);
        String inputString = in.nextLine();
        Stack stack = new Stack();

        for (int i = 0; i < inputString.length(); i++) {
            stack.push(inputString.charAt(i));
        }

        String reverseString = "";

        while (!stack.isEmpty()) {
            reverseString = reverseString+stack.pop();
        }

        if (inputString.equals(reverseString))
            System.out.println("The input String is a palindrome.");
        else
            System.out.println("The input String is not a palindrome.");

    }
}

Output 1:

Enter any string:abccba
The input String is a palindrome.

Output 2:

Enter any string:abcdef
The input String is not a palindrome.

Program 2: Palindrome check Using Queue

import java.util.Queue;
import java.util.Scanner;
import java.util.LinkedList;
class PalindromeTest {

    public static void main(String[] args) {

    	System.out.print("Enter any string:");
        Scanner in=new Scanner(System.in);
        String inputString = in.nextLine();
        Queue queue = new LinkedList();

        for (int i = inputString.length()-1; i >=0; i--) {
            queue.add(inputString.charAt(i));
        }

        String reverseString = "";

        while (!queue.isEmpty()) {
            reverseString = reverseString+queue.remove();
        }
        if (inputString.equals(reverseString))
            System.out.println("The input String is a palindrome.");
        else
            System.out.println("The input String is not a palindrome.");

    }
}

Output 1:

Enter any string:xyzzyx
xyzzyx
The input String is a palindrome.

Output 2:

Enter any string:xyz
The input String is not a palindrome.

Program 3: Using for loop/While loop and String function charAt

import java.util.Scanner;
class PalindromeTest {
   public static void main(String args[])
   {
      String reverseString="";
      Scanner scanner = new Scanner(System.in);

      System.out.println("Enter a string to check if it is a palindrome:");
      String inputString = scanner.nextLine();

      int length = inputString.length();

      for ( int i = length - 1 ; i >= 0 ; i-- )
         reverseString = reverseString + inputString.charAt(i);

      if (inputString.equals(reverseString))
         System.out.println("Input string is a palindrome.");
      else
         System.out.println("Input string is not a palindrome.");

   }
}

Output 1:

Enter a string to check if it is a palindrome:
aabbaa
Input string is a palindrome.

Output 2:

Enter a string to check if it is a palindrome:
aaabbb
Input string is not a palindrome.

If you wanna use While Loop in above program then replace the for loop with this code:

int i = length-1;
while ( i >= 0){
    reverseString = reverseString + inputString.charAt(i);
    i--;
}

Enjoyed this post? Try these related posts

  1. Java Program to Reverse a String using Recursion
  2. Java Program to Sort an Array in Ascending Order
  3. Java Program for Selection Sorting
  4. Java Program to find duplicate Characters in a String
  5. Java Program to Check Armstrong Number
  6. Java Program to Multiply Two Numbers

Comments

  1. Jasper says

    January 30, 2015 at 3:45 AM

    This is helpful, but you actually can’t use the push method on a char. You have to cast it as a java.lang.Character, so that it becomes an Object. For example,
    stack.push(new Character(inputString.charAt(i)));

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Programs

  • C Programs
  • Java Programs

Java Examples

  • Check Odd-even
  • Linear Search
  • Binary Search
  • Floyd's Triangle
  • Reverse number
  • Random Number
  • first n prime numbers
  • Disp prime Numbers
  • Check Prime number
  • Palindrome String
  • Find factorial
  • Sum of elements of Array
  • Area of rectangle
  • Area of Square
  • Area of Triangle
  • Circle

Tutorials

  • Java Tutorial
  • OOPs Concepts
  • Java String
  • Exception handling
  • Java Multithreading
  • Java I/O
  • Java Serialization
  • Java Regex
  • Java AWT
  • Java Swing
  • Java Enum
  • Java Annotations

Recently Added..

  • JSON Tutorial
  • Java Regular Expressions Tutorial
  • Java Enum Tutorial
  • Java Annotations Tutorial

Copyright © 2012 – 2021 BeginnersBook . Privacy Policy . Sitemap