Java Program to Reverse the given String using Stack
Given a String, write a java program to reverse the string using Stack
Java Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import java.util.Stack; public class JavaExample { static void reverse(String input){ StringBuffer output = new StringBuffer(); if(input==null || input.isEmpty()) return; Stack<Character> stack = new Stack<>(); for (int i = 0; i <input.length() ; i++) { stack.add(input.charAt(i)); } //traverse through stack, pop the characters and add it to StringBUffer while (stack.empty()==false){ output.append(stack.pop()); } System.out.println("Original String: " + input); System.out.println("Reverse String: " + output); } public static void main(String[] args) { String input = "Code Examples"; reverse(input); } } |
Output:
1 2 3 4 |
Original String: Code Examples Reverse String: selpmaxE edoC |
How to work
- Initialize a StringBuffer, this will be our output.
- Initialize a Stack.
- Traverse through string, one character at a time and keep adding it to Stack.
- While stack is not empty, keep popping out the characters from stack and add it to the output StringBuffer.
- Print the output.
Java Program to Reverse the String entered by user using Stack
Java Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import java.util.Scanner; import java.util.Stack; public class JavaExample { static void reverse(String input){ StringBuffer output = new StringBuffer(); if(input==null || input.isEmpty()) return; Stack<Character> stack = new Stack<>(); for (int i = 0; i <input.length() ; i++) { stack.add(input.charAt(i)); } //traverse through stack, pop the characters and add it to StringBUffer while (stack.empty()==false){ output.append(stack.pop()); } System.out.println("Original String: " + input); System.out.println("Reverse String: " + output); } public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.print("Enter a String:"); String input = sc.nextLine(); reverse(input); } } |
Output:
1 2 3 4 5 |
Enter a String:Hello World Original String: Hello World Reverse String: dlroW olleH |