ChengJade1Part1.java

import java.util.InputMismatchException;
import java.util.NoSuchElementException;
import java.util.Scanner;

/**
 * This class implements a Java application that:
 * 
 *   Declares a Scanner variable.
 * 
 *   Declares an array of 26 String values, and initializes each array
 *   element with the corresponding lower case letter of the alphabet.
 * 
 *   Prompts the user to enter an integer and uses the Scanner's nextInt
 *   method to obtain that integer from the user.
 * 
 *   Prints out the corresponding letter from the array.
 * 
 *   Creates a new array of size 27, puts a string containing a space (" ")
 *   at index 0 in the new array, and copies all the other letters to positions
 *   1..26 of the new array using System.arraycopy().
 * 
 *   Loops through the array, printing each entry, either as is, or upper
 *   case if it is a vowel ("a", "e", "i", "o", "u").
 * 
 *   Prints the number of non-vowel strings at the end of the loop.
 * 
 *   The program catches the InputMismatchException from the call to nextInt,
 *   in which case the program must display an appropriate error message and
 *   end the program.
 * 
 *   The loop works for any size initial array, and not depend on the array
 *   size.
 * 
 * @author     Jade Cheng
 * @assignment TA 1 part 1
 * @date       Jan 14, 2010
 * @bugs       None
 */
public class ChengJade1Part1 {
    /**
     * The entry point of the application.
     * 
     * @param args The command line arguments (not used).
     */
    public static void main(final String[] args) {

        // Declare a Scanner variable.
        final Scanner scanner = new Scanner(System.in);

        // Declare an array of of 26 String values, and initializes each array
        // element with the corresponding lower case letter of the alphabet.
        final String[] array = new String[] { "a", "b", "c", "d", "e", "f",
                "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r",
                "s", "t", "u", "v", "w", "x", "y", "z" };

        // Prompt the user to enter an integer and use the Scanner's nextInt
        // method to obtain that integer from the user.
        int input = 0;
        System.out.print("Please type an integer (0 to 25): ");

        // Catch the InputMismatchException from the call to nextInt,
        // in which case display an appropriate error message and
        // end the program.
        try {
            input = scanner.nextInt();
            System.out.println(array[input]);

        } catch (final InputMismatchException e) {
            System.err.println("Input mismatch.");
            System.exit(1);

        } catch (final NoSuchElementException e) {
            System.err.println("\nInput stream closed.");
            System.exit(1);

        } catch (final ArrayIndexOutOfBoundsException e) {
            System.err.println("Index out of bounds.");
            System.exit(1);
        }

        // Create a new array of size 27, put a string containing a space
        // (" ") at index 0 in the new array, and copy all the other letters
        // to positions 1..26 of the new array using System.arraycopy().
        final String[] newArray = new String[27];
        newArray[0] = " ";
        System.arraycopy(array, 0, newArray, 1, 26);

        // Loop through the array, print each entry, either as is, or upper
        // case if it is a vowel ("a", "e", "i", "o", "u").
        int consonants = 0;
        for (int i = 0; i < newArray.length; i++) {

            if ("aeiou".indexOf(newArray[i]) >= 0) {
                System.out.print(newArray[i].toUpperCase());
                continue;
            }

            // NOTE: This is an alternative way to check for a vowel:
            //
            // if (newArray[i].equals("a") ||
            //     newArray[i].equals("e") ||
            //     newArray[i].equals("i") ||
            //     newArray[i].equals("o") ||
            //     newArray[i].equals("u")) {
            //   System.out.print(newArray[i].toUpperCase());
            //   continue;
            // }

            System.out.print(newArray[i]);
            consonants++;
        }

        // Print the number of non-vowel strings at the end of the loop.
        System.out.println("\nNumber of consonants: " + consonants);

        // Exit cleanly while debugging from Eclipse.
        System.exit(0);
    }
}
Valid HTML 4.01 Valid CSS