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!");
}
}
}
}
}
}