Reverse a String using Stack Data Structure in Java

📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.

🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.

▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube

▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube

In this article, we will discuss how to reverse a string using stack operations.

Reverse a String using Stack Data Structure

This program uses stack operations to reverse a word (string). First, we push each character to the stack, then we will pop each char from the stack.
public class ReverseStringUsingStackDS { public String reverseWord(String word) { StringBuilder stringBuilder = new StringBuilder(); int size = word.length(); StackArray stack = new StackArray(size); for(char c : word.toCharArray()){ stack.push(c); } while (!stack.isEmpty()) { stringBuilder.append(stack.pop()); } return stringBuilder.toString(); } public static void main(String a[]) { ReverseStringUsingStackDS mwr = new ReverseStringUsingStackDS(); System.out.println("javaguides == " + mwr.reverseWord("javaguides")); System.out.println("Java == " + mwr.reverseWord("Java")); System.out.println("program == " + mwr.reverseWord("program")); } class StackArray { private int stackSize; private char[] stackArr; private int top; /**  * constructor to create stack with size  * @param size  */ public StackArray(int size) { this.stackSize = size; this.stackArr = new char[stackSize]; this.top = -1; } /**  * This method adds new entry to the top of the stack  *   * @param entry  * @throws Exception  */ public void push(char entry) { this.stackArr[++top] = entry; } /**  * This method removes an entry from the top of the stack.  *   * @return  * @throws Exception  */ public char pop() { char entry = this.stackArr[top--]; return entry; } /**  * This method returns top of the stack without removing it.  *   * @return  */ public char peek() { return stackArr[top]; } /**  * This method returns true if the stack is empty  *   * @return  */ public boolean isEmpty() { return (top == -1); } /**  * This method returns true if the stack is full  *   * @return  */ public boolean isFull() { return (top == stackSize - 1); } } }
Output
javaguides == sediugavaj Java == avaJ program == margorp

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare