Solution for
Programming Exercise 2.3
THIS PAGE DISCUSSES ONE POSSIBLE SOLUTION to
the following exercise from this on-line
Java textbook.
Exercise 2.3:
Write a program that asks the user's name, and then greets the user by name.
Before outputting the user's name, convert it to upper case letters.
For example, if the user's name is Fred, then the program should respond
"Hello, FRED, nice to meet you!".
Discussion
In order to read the name typed in by the user, this program
uses one of the input routines from the non-standard TextIO
class. So, this program can only be run if that class is available
to the program. For consistency, I will also use TextIO
for output, although I could just as easily use System.out.
A name is a sequence of characters, so it is a value of type
String. The program must declare a variable of type
String to hold the user's name. I declare another
variable to hold the user's name with all the letters in the name
converted to upper case. The conversion might be difficult, except
that String objects have a function that does the conversion.
If usersName is the variable that refers to the name that
the user enters, then the function call usersName.toUpperCase()
returns the string obtained by replacing any lower case letters in the
name with upper case letters.
There are several functions in TextIO class that can be
used for reading Strings: getWord(),
getlnWord(), and getln(). The first two routines
only read a single word, so if the user entered "David J. Eck",
they would only read the first name, "David". The getln()
routine will read the entire line, and so would get the whole name.
For this program, I use getln(), but you might refer to
use just the first name.
(For this program, by the way, getWord() and getlnWord()
would be equivalent. They return the same value. The second version of
the routine, getlnWord(), would then discard the rest of
the user's line of input. However, since this program is only doing one
input operation, it doesn't matter whether it's discarded. It would only
matter when it came time to read a second value from input.)
The Solution
public class Greeting {
/* This program asks the user's name and then
greets the user by name. This program depends
on the non-standard class, TextIO.
*/
public static void main(String[] args) {
String usersName; // The user's name, as entered by the user.
String upperCaseName; // The user's name, converted to uppercase letters.
TextIO.put("Please enter your name: ");
usersName = TextIO.getln();
upperCaseName = usersName.toUpperCase();
TextIO.putln("Hello, " + upperCaseName + ", nice to meet you!");
} // end main()
} // end class
[ Exercises
| Chapter Index
| Main Index
]