JAVA PPROGRAM ASAP Hypergrade does not like this program because it says 2 out of 7 passed and take out the extra \n from the program. Please Modify and change this program ASAP BECAUSE IT IS HOMEWORK ASSIGNMENT so it passes all the test cases. The program must pass the test case when uploaded to Hypergrade. Also, for test cases 1-4 it wants only to input Please enter the file name or type QUIT to exit: then input the file and display the Total number of words. For test cases 5 and 7 it wants to only to input Please enter the file name or type QUIT to exit then input input5.txt and then display File: input5.txt does not exist.\n then display Please enter the file name again or type QUIT to exit:\n then type input1.txt to display the total number of words or type quit to exit the program. For test case 6 it wants only to Please enter the file name again or type QUIT to exit:\n then type quit to exit the porgram. import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); String fileName; System.out.println("Please enter the file name or type QUIT to exit:"); fileName = keyboard.nextLine().trim(); while (!fileName.equalsIgnoreCase("QUIT")) { File file = new File(fileName); if (file.exists()) { int wordCount = countWords(file); System.out.println("Total number of words: " + wordCount + "\n"); break; // Exit after successful word count } else { System.out.println("File: " + fileName + " does not exist."); System.out.println("Please enter the file name again or type QUIT to exit:"); fileName = keyboard.nextLine().trim(); } } keyboard.close(); } public static int countWords(File file) { int wordCount = 0; try { Scanner inputFile = new Scanner(file); while (inputFile.hasNext()) { // Remove leading and trailing whitespaces String line = inputFile.nextLine().trim(); if(!line.isEmpty()) { String[] words = line.split("\\s+"); wordCount += words.length; } } inputFile.close(); } catch (FileNotFoundException e) { // File existence already validated // catch exception for completeness e.printStackTrace(); } return wordCount; } } Chapter 9. PC #10. Word Counter (page 610) Write a program that asks the user for the name of a file. The program should display the number of words that the file contains. Input Validation: Make sure the file exists, before proceeding. Let the user type quit in order to exit the program. If the file is empty, the word count should be 0. input1.txt this is a test input2.txt this is a test input3.txt Empty input4txt this this is is a a test test Test Case 1 Please enter the file name or type QUIT to exit:\n input1.txtENTER Total number of words: 4\n Test Case 2 Please enter the file name or type QUIT to exit:\n input2.txtENTER Total number of words: 4\n Test Case 3 Please enter the file name or type QUIT to exit:\n input3.txtENTER Total number of words: 0\n Test Case 4 Please enter the file name or type QUIT to exit:\n input4.txtENTER Total number of words: 8\n Test Case 5 Please enter the file name or type QUIT to exit:\n input5.txtENTER File: input5.txt does not exist.\n Please enter the file name again or type QUIT to exit:\n input1.txtENTER Total number of words: 4\n Test Case 6 Please enter the file name or type QUIT to exit:\n qUitENTER Test Case 7 Please enter the file name or type QUIT to exit:\n input5.txtENTER File: input5.txt does not exist.\n Please enter the file name again or type QUIT to exit:\n quItENTER
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
String fileName;
System.out.println("Please enter the file name or type QUIT to exit:");
fileName = keyboard.nextLine().trim();
while (!fileName.equalsIgnoreCase("QUIT")) {
File file = new File(fileName);
if (file.exists()) {
int wordCount = countWords(file);
System.out.println("Total number of words: " + wordCount + "\n");
break; // Exit after successful word count
} else {
System.out.println("File: " + fileName + " does not exist.");
System.out.println("Please enter the file name again or type QUIT to exit:");
fileName = keyboard.nextLine().trim();
}
}
keyboard.close();
}
public static int countWords(File file) {
int wordCount = 0;
try {
Scanner inputFile = new Scanner(file);
while (inputFile.hasNext()) {
// Remove leading and trailing whitespaces
String line = inputFile.nextLine().trim();
if(!line.isEmpty()) {
String[] words = line.split("\\s+");
wordCount += words.length;
}
}
inputFile.close();
} catch (FileNotFoundException e) {
// File existence already validated
// catch exception for completeness
e.printStackTrace();
}
return wordCount;
}
}
input1.txt
this is a test
input2.txt
this
is
a
test
input3.txt
Empty
input4txt
this this
is is
a a
test test
Test Case 1
input1.txtENTER
Total number of words: 4\n
Test Case 2
input2.txtENTER
Total number of words: 4\n
Test Case 3
input3.txtENTER
Total number of words: 0\n
Test Case 4
input4.txtENTER
Total number of words: 8\n
Test Case 5
input5.txtENTER
File: input5.txt does not exist.\n
Please enter the file name again or type QUIT to exit:\n
input1.txtENTER
Total number of words: 4\n
Test Case 6
qUitENTER
Test Case 7
input5.txtENTER
File: input5.txt does not exist.\n
Please enter the file name again or type QUIT to exit:\n
quItENTER
Step by step
Solved in 4 steps with 8 images