Rhymer.java


Below is the syntax highlighted version of Rhymer.java from §4.2 Sorting and Searching.


/*************************************************************************
 *  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 © 2000–2011, Robert Sedgewick and Kevin Wayne.
Last updated: Wed Feb 9 09:17:30 EST 2011.