Letter Counter

import java.util.Scanner;

public class LetterCounter {

    public static void main(String[] args) {
        try (Scanner scan = new Scanner(System.in)) {
            while (true) {
                //define variables
                int letterACounter = 0, letterECounter = 0, letterICounter = 0;
                int letterOCounter = 0, letterUCounter = 0, total = 0;


                System.out.println("-----------Welcome to the Vowel Statistics Application-----------");
                System.out.println("Please enter any characters or symbols to start, or 'bye' to quit.");
                String userInitialInput = scan.nextLine();

                //set exit option for player
                if (userInitialInput.equalsIgnoreCase("bye")) {
                    System.out.println("You entered 'bye', program ended. Goodbye!");
                    return;
                }

                //convert all upperCase to lowerCase
                String inputModifier = userInitialInput.toLowerCase();

                for (int i = 0; i < inputModifier.length(); i++) {
                    char ch = inputModifier.charAt(i);

                    // ignore blank and calculate how many times each vowel
                    if (ch != ' ') {
                        total++;
                        switch (ch) {
                            case 'a' ->
                                letterACounter++;
                            case 'e' ->
                                letterECounter++;
                            case 'i' ->
                                letterICounter++;
                            case 'o' ->
                                letterOCounter++;
                            case 'u' ->
                                letterUCounter++;
                        }
                    }
                }
                //calculate how many non-vowel letters and symblols
                int nonVowels = total - (letterACounter + letterECounter + letterICounter + letterOCounter + letterUCounter);

                //output results
                System.out.println("---------------The Statistics of your input---------------");
                System.out.println("You entered " + total + " characters/symbols, details as below:");
                System.out.println("Vowels: 'a' = " + letterACounter + ", 'e' = " + letterECounter + ", 'i' = " + letterICounter + ", 'o' = " + letterOCounter + ", 'u' = " + letterUCounter);
                System.out.println("NonVowels : " + nonVowels);
                System.out.println("----------------------------------------------------------");

                //set loop and exit option for next run
                while (true) {
                    System.out.println("Do you want to play again? (yes/no)");

                    //convert to lowerCase and delete blank space except the middle ones of user's input
                    String playAgain = scan.nextLine().trim().toLowerCase();

                    if (playAgain.equals("yes")) {
                        break;
                    } else if (playAgain.equals("no")) {
                        System.out.println("Program ended. Goodbye!");
                        return;
                    } else {
                        System.out.println("Invalid input!");
                    }
                }
            }
        }
    }
}
Scroll to Top