java examples
Home Java Examples Resources Java Interview Questions
Brainpower SEO

How to reverse a string by word?

On the previous example in this website you might have seen how to reverse a string using StringBuffer, StringUtils from Apache commons library or using the CharacterIterator.

In this example you'll see another way that you can use to reverse a string by word. Here we use the StringTokenizer and the Stack class.

package com.javacoderanch.example.lang;

import java.util.Stack;
import java.util.StringTokenizer;

public class ReverseByWord {
    public static void main(String[] args) {
        //
        // The string that we'll reverse
        //
        String text = "Jackdaws love my big sphinx of quartz";

        //
        // We use StringTokenize to get each word of the string. You might try
        // to use the String.split() method if you want.
        //
        StringTokenizer st = new StringTokenizer(text, " ");

        //
        // To reverse it we can use the Stack class, which implements the LIFO
        // (last-in-first-out).
        //
        Stack stack = new Stack();
        while (st.hasMoreTokens()) {
            stack.push(st.nextToken());
        }

        //
        // Print each word in reverse order
        //
        while (!stack.isEmpty()) {
            System.out.print(stack.pop() + " ");
        }
    }
}