A good answer might be:

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

Cascaded 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 list of the startsWith() method now
                |                         has 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 if causes the  true-branch to execute
              

Ordinarily, programmers 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. Look again at the above statement and practice thinking about it at several levels of detail.

Now look at these lines of code:

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

	. . . . . .

     if ( burns.toLower().startsWith( "  MY LOVE".trim().toLower() ) )
       System.out.println( "Both start with the same letters." ); 
     else
       System.out.println( "Prefix fails." );

QUESTION 15:

What does the above write to the monitor?

Click Here after you have answered the question