- Given a string in java, reverse the string word by word.
- Let us look into couple of examples to understand problem statement.
- Example 1:
- String inputString = “Girl Proposes Boy”
- reverse(inputString) should be “Boy Proposes Girl”
- Example 2:
- String inputString = “Hell To Heaven”
- reverse(inputString) should be “Heaven To Hell”
- Example 1:
1. Algorithm: Reverse string word by word (java/ stack /stringbuilder)
- Reverse String using StringBuilder
- Split the input string using space delimiter.
- Start appending the string from end .
- We will get string reversed word wise.
- Reverse String using Stack.
- Split the input string using space delimiter.
- Iterate through the string array (result of previous step) & push each string to stack.
- Pop each string element from stack and concatenate the string.
- We we get the desired output.

2. Program: Reverse string word by word (java/stack/stringbuilder /example)
package org.learn; import java.util.Scanner; import java.util.Stack; import java.util.regex.Pattern; public class ReverseWordsInString { public static void main(String[] args) { try (Scanner scanner = new Scanner(System.in)) { System.out.printf( "1. Enter string to reverse : " ); String inputString = scanner.nextLine(); if (inputString == null || inputString.length() == 0 ) { System.out.println( "Enter the valid string" ); return ; } String reverse = reverseStringWordWise(inputString); System.out.printf( "2. Reverse string using StringBuilder is : %s" , reverse); reverse = reverseStringWordWise_Stack(inputString); System.out.printf( "\n3. Reverse string using stack is : %s" , reverse); } } private static String reverseStringWordWise(String inputString) { String[] arrString = inputString.trim().split(Pattern.quote( " " )); StringBuilder builder = new StringBuilder(); int length = arrString.length; while (--length >= 0 ) { builder.append(arrString[length]).append( " " ); } return builder.toString(); } private static String reverseStringWordWise_Stack(String inputString) { String[] arrString = inputString.trim().split(Pattern.quote( " " )); Stack<String> stack = new Stack<>(); for (String input : arrString) { stack.push(input); } StringBuilder builder = new StringBuilder(); while ( !stack.isEmpty()) { builder.append(stack.pop()).append( " " ); } return builder.toString(); } } |
3. Output: Reverse string word by word (java/stack/stringbuilder /example)
1. Enter string to reverse : Girl Proposes Boy 2. Reverse string using StringBuilder is : Boy Proposes Girl 3. Reverse string using stack is : Boy Proposes Girl 1. Enter string to reverse : Hell To Heaven 2. Reverse string using StringBuilder is : Heaven To Hell 3. Reverse string using stack is : Heaven To Hell |