Counting the Number of Uppercase and Lowercase Letters in a String in Java

Problem:

The purpose of this program is to demonstrates the relationship between arrays an strings. Create an application that reads a sentence from the user and counts the number of uppercase and lowercase letters contained in it.


Output:

Enter a sentence:
Hello, I'm reading a sentence on "javaproblems.com". Yey me!
A: 0 a: 4
B: 0 b: 1
C: 0 c: 2
D: 0 d: 1
E: 0 e: 8
F: 0 f: 0
G: 0 g: 1
H: 1 h: 0
I: 1 i: 1
J: 0 j: 1
K: 0 k: 0
L: 0 l: 3
M: 0 m: 4
N: 0 n: 4
O: 0 o: 4
P: 0 p: 1
Q: 0 q: 0
R: 0 r: 2
S: 0 s: 2
T: 0 t: 1
U: 0 u: 0
V: 0 v: 1
W: 0 w: 0
X: 0 x: 0
Y: 1 y: 1
Z: 0 z: 0

Non-alphabetic characters: 15


Solution:

import java.util.Scanner;

public class LetterCount
{
public static void main (String[] args)
   {
      final int NUMCHARS = 26;
      Scanner scan = new Scanner (System.in);
      int[] upper = new int[NUMCHARS];
      int[] lower = new int[NUMCHARS];
      char current;   // the current character being processed
      int other = 0;  // counter for non-alphabetics
      System.out.println ("Enter a sentence:");
      String line = scan.nextLine();
      for (int ch = 0; ch < line.length(); ch++)
      {
         current = line.charAt(ch);
         if (current >= 'A' && current <= 'Z')
           upper[current-'A']++;
         else
           if (current >= 'a' && current <= 'z')
              lower[current-'a']++;
           else
              other++;
      }
      System.out.println ();
      for (int letter=0; letter < upper.length; letter++)
      {
         System.out.print ( (char) (letter + 'A') );
         System.out.print (": " + upper[letter]);
         System.out.print ("\t\t" + (char) (letter + 'a') );
         System.out.println (": " + lower[letter]);
      }
      System.out.println ();
      System.out.println ("Non-alphabetic characters: " + other);
   }
}


No comments:

Post a Comment