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

Answer:

Prefix 1 matches.
Prefix 2 fails.
Prefix 3 fails.
Prefix 4 matches.

More String Operations

Here is how the last if of the program worked:

String burns = "My love is like a red, red rose.";

. . . . . .

if ( burns.startsWith( "  My love".trim() ) )
  System.out.println( "Prefix 4 matches." );  <-- this branch executes
else
  System.out.println( "Prefix 4 fails." );

The string " My love" starts with two spaces, so it does not match the start of the string referenced by burns. However, its trim() method is called, which creates a new String without those leading spaces:


if ( burns.startsWith( "  My love".trim() ) )
           -----+----  -----+-----
                |           |
                |           |
                |           +------- 1.  A temporary String object 
                |                        is constructed.
                |                        This temporary object 
                |                        contains "  My love"
                |
                |                    2.  The trim() method of the 
                |                        temp object is called.
                |
                |                    3.  The trim() method returns 
                |                        a reference to a SECOND
                |                        temporary String object 
                |                        which it has constructed.
                |                        This second temporary 
                |                        object contains "My love"
                |
                |                    4.  The parameter of the 
                |                        startsWith() method
                |                        now is a reference to 
                |                        a String, as required.
                |
                +---- 5. The startsWith() method of 
                         the object referenced by  
                         burns is called.
                         
                      6.  The startsWith() method 
                          returns true

                      7.  The true-branch of the 
                          if-statement executes. 

Programmers usually do not think about what happens in such detail. Usually, a programmer thinks: "trim the spaces of one String and see if it is the prefix of another." But sometimes, you need to analyze a statement carefully to be sure it does what you want.


QUESTION 25:

What does the toLowerCase() method of class String do?