More String Operations

Classic programmed-learning exercises, refreshed for modern Java and presented in the current MrStyner.com portfolio style.

Modern Java noteThis archive has been refreshed for Java 25 LTS. Core language concepts remain useful, while outdated setup instructions and browser-era Java are labeled or replaced. Java 26 is the current feature release; Java 25 is used here as the stable teaching baseline.
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 exectutes. 

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

QUESTION 25:

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