Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




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!".


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 ]

  Published under free license. Design by Interspire