Rhymer.java


Below is the syntax highlighted version of Rhymer.java from §2.5 Sorting Applications.


/*************************************************************************
 *  Compilation:  javac Rhymer.java StdIn.java
 *  Execution:    java Rhymer < data.txt
 *  
 *  Reads in a sequence of words.
 *
 *************************************************************************/

import java.util.Arrays;

public class Rhymer { 


    private static String reverse(String s) {
        StringBuffer sb = new StringBuffer(s);
        sb.reverse();
        return new String(sb);
    }


    public static void main(String[] args) {
        String input = StdIn.readAll();
        String[] strings = input.split("\\s+");

        // reverse order of letters in each word
        for (int i = 0; i < strings.length; i++)
            strings[i] = reverse(strings[i]);

        // sort the words
        Arrays.sort(strings);

        // reverse order of letters in each word
        for (int i = 0; i < strings.length; i++)
            strings[i] = reverse(strings[i]);

        // print words
        for (int i = 0; i < strings.length; i++) 
            StdOut.println(strings[i]);
    }
}


Copyright © 2002–2010, Robert Sedgewick and Kevin Wayne.
Last updated: Sun Jul 24 09:29:10 EDT 2011.