Question: Modify the CategorizeStrings application to divide the entered Strings into those that contain no spaces, one space, or more. After data entry is complete, continuously
Modify the CategorizeStrings application to divide the entered Strings into those that contain no spaces, one space, or more. After data entry is complete, continuously prompt the user to enter the type of String to display: O for one word Strings, T for two word Strings, and L for longer Strings. If the user does not enter one of the three valid choices, display all of the Strings. Allow the user to enter ZZZ to quit.
Code:
import java.util.*; public class CategorizeStrings2 { // Modify the code below public static void main (String[] args) { final int MAX = 20; final int CUTOFF = 10; final String QUIT = "ZZZ"; String entry; int shortSub = 0; int longSub = 0; Scanner input = new Scanner(System.in); String[] longStrings = new String[MAX]; String[] shortStrings = new String[MAX];
System.out.print("Enter a string or " + QUIT + " to quit >> "); entry = input.nextLine(); while(!entry.equals(QUIT) && (shortSub + longSub < MAX)) { if(entry.length() <= CUTOFF) { shortStrings[shortSub] = entry; ++shortSub; } else { longStrings[longSub] = entry; ++longSub; } if(shortSub + longSub < MAX) { System.out.print("Enter a string or " + QUIT + " to quit >> "); entry = input.nextLine(); } } System.out.println(" Do you want to see the list of short strings or the list of long strings?"); System.out.print(" Please enter S or L or " + QUIT + " to quit >> "); entry = input.nextLine(); while(!entry.equals(QUIT)) { if(entry.substring(0, 1).toLowerCase().equals("s")) display(shortStrings, shortSub); else display(longStrings, longSub); System.out.println(" Do you want to see the list of short strings or the list of long strings?"); System.out.print(" Please enter S or L or " + QUIT + " to quit >> "); entry = input.nextLine(); } } public static void display(String[] array, int max) { System.out.println(); if(max == 0) System.out.println("The list is empty"); else for(int x = 0; x < max; ++x) System.out.println(array[x]); } }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
