go to previous page   go to home page   go to next page

Answer:

Yes.


Revised Reverse

The reverse() method reverses the order of the characters in a StringBuffer object. Unlike the methods of immutable objects, this method changes the data of its object.

For the following example, pretend that this method does not exist.

Our reverse() inputs a String reference and returns a reference to a reversed version of that String. Only two new objects are created: the StringBuffer and the String object that is returned to the caller.

The append() method puts a new character at the end of a StringBuffer object. No new object is created. We can use this method to build up the reversed characters as the original String is scanned from right to left:


public class ReverseTester
{

  // create a new string containing the characters of the
  // input string, but reversed
  //
  public static String reverse( String data )
  {
    StringBuffer temp = new StringBuffer();

    for ( int j=data.length()-1; j >= 0; j-- )  // scan the String from right to left
      temp.append( data.charAt(j) );            // append characters on the right

    return temp.toString();      // return a String created from the StringBuffer
  }

  public static void main ( String[] args )
  {
    System.out.println( reverse( "Hello" ) );
  }
}

This reverse method is much more efficient than the first reverse() method in this chapter because only one new object is constructed.


QUESTION 8:

Does this program make any assumptions about the size of the original String?


go to previous page   go to home page   go to next page