> ### 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 ]