Programming Assignment Unit 1
Programming Assignment Unit 1
import java.util.Scanner;
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.Map;
import java.util.Set;
import java.util.HashSet;
/**
* The `TextAnalyzer` class provides methods for analyzing and processing text input.
* It includes functionality related to character and word analysis.
* Users can input paragraphs or lengthy text for analysis.
* @author Foster Misomali
*/
int choice = 0;
do {
System.out.println("1. Total Characters");
System.out.println("2. Total Words");
System.out.println("3. Most Common Character");
System.out.println("4. Check Frequency of Character");
System.out.println("5. Check Frequency of Word");
System.out.println("6. Check Unique Word");
System.out.println("7. Exit");
System.out.print("Enter your choice: ");
try {
choice = scanner.nextInt();
scanner.nextLine(); // Consume newline
switch (choice) {
case 1:
// Find total characters
System.out.println("Number of total characters is: " +
inputText.length());
break;
case 2:
//Find total words
String[] words = inputText.split("\\s+");
System.out.println("Number of total words is: " + words.length);
break;
case 3:
//Find most common character
char mostCommonChar = mostCommonCharacter(inputText);
System.out.println("Most common character is: " +
mostCommonChar);
break;
case 4:
//Check character frequency
char targetChar;
do {
System.out.print("Enter a single character to check its frequency: ");
String userInput = scanner.nextLine();
if (userInput.length() == 1 && Character.isLetter(userInput.charAt(0))) {
targetChar = userInput.charAt(0);
break; // Valid input, exit loop
} else {
System.out.println("Please enter a valid single character.");
}
} while (true);
int charFrequency = countCharacterFrequency(inputText, targetChar);
System.out.println("Frequency of '" + targetChar + "' is: " + charFrequency);
break;
case 5:
//Check word frequency
System.out.print("Enter a word to check its frequency: ");
String[] word = inputText.split("\\s+");
String targetWord = scanner.nextLine().toLowerCase();
case 6:
//Find unique words
String[] wordArray = inputText.split("\\s+");
int uniqueWordCount = countUniqueWords(wordArray);
System.out.println("Number of unique word is: " +
uniqueWordCount);
break;
case 7:
//Exit the program
System.out.println("Exiting. Have a great day!");
break;
default:
System.out.println("Invalid choice. Please select a valid
option.");
}
} catch (InputMismatchException e) {
System.out.println("Error! Please enter a valid number choice.");
scanner.nextLine(); // Consume newline
}
} while (choice != 7);
}
}
}