Reference no: EM131960306
File CountLetters.java contains a program that reads a word from the user and prints the number of occurrences of each letter in the word. Save it to your directory and study it, then compile and run it to see how it works. In reading the code, note that the word is converted to all upper case first, then each letter is translated to a number in the range 0..25 (by subtracting 'A') for use as an index. No test is done to ensure that the characters are in fact letters.
1. Run CountLetters and enter a phrase, that is, more than one word with spaces or other punctuation in between. It should throw an ArrayIndexOutOfBoundsException, because a non-letter will generate an index that is not between 0 and 25. It might be desirable to allow non-letter characters, but not count them. Of course, you could explicitly test the value of the character to see if it is between 'A' and 'Z'. However, an alternative is to go ahead and use the translated character as an index, and catch an ArrayIndexOutOfBoundsException if it occurs. Since you want don't want to go further when a non-letter occurs, the handler will be empty. Modify this method as follows:
- Put the body of the first for loop in a try.
- Add a catch that catches the exception, but don't go further with it.
Compile and run your program.
2. Now modify the body of the catch so that it prints a useful message (e.g., "Not a letter") followed by the exception. Compile and run the program. Although it's useful to print the exception for debugging, when you're trying to smoothly handle a condition that you don't consider erroneous you often don't want to. In your print statement, replace the exception with the character that created the out of bounds index. Run the program again; much nicer!
// ****************************************************************
// CountLetters.java
//
// Reads a words from the standard input and prints the number of
// occurrences of each letter in that word.
//
// ****************************************************************
import java.util.Scanner;
public class CountLetters
{
public static void main(String[] args)
{
int[] counts = new int[26];
Scanner scan = new Scanner(System.in);
//get word from user
System.out.print("Enter a single word (letters only, please): ");
String word = scan.nextLine();
//convert to all upper case
word = word.toUpperCase();
//count frequency of each letter in string
for (int i=0; i < word.length(); i++)
counts[word.charAt(i)-'A']++;
//print frequencies
System.out.println();
for (int i=0; i < counts.length; i++)
if (counts [i] != 0)
System.out.println((char)(i +'A') + ": " + counts[i]);
}
}
What is the cash flow to the creditors
: What is the cash flow to the creditors for 2015? Lowell, Inc. 2015 Income Statement Net sales 17,340 Cost of goods sold 8,200 Selling,
|
How errors handled during transmission of segmented packets
: How are errors handled during transmission of segmented packets? What is the difference between a TCP segment and an IP packet?
|
Make sure there is no duplicate information
: For each book in the catalog, display its title, publisher, ISBN, release date, number of pages, and whether it's carried in any library ("Yes" or "No").
|
Develop a variance analysis including a budget variance
: Develop a variance analysis including a budget variance performance report and appropriate variances for materials and labor
|
Replace the exception with the character
: Although it's useful to print the exception for debugging, when you're trying to smoothly handle a condition that you don't consider erroneous
|
Riskier stock exceed required return on less risky stock
: By how much does the required return on the riskier stock exceed the required return on the less risky stock?
|
What is the total increase in income for hibiscus company
: The two divisions have recently negotiated a transfer price of $48 per unit for the 20,000 units. What is the total increase in income for Hibiscus Company
|
Yield to maturity and future price
: Yield to maturity and future price. What is its yield to maturity (YTM)?
|
What is the rate of return on investment
: Miller's Quarter Horse Company has sales of $4,500,000. The company has established a minimum rate of return of 7%. What is the rate of return on investment
|