5.6 Warm up: Parsing strings (Java)
(1) Prompt the user for a string that contains two strings separated by a comma. (1 pt)
Examples of strings that can be accepted:
Jill, Allen
Jill , Allen
Jill,Allen
Ex:
Enter input string: Jill, Allen
(2) Report an error if the input string does not contain a comma. Continue to prompt until a valid string is entered.Note: If the input contains a comma, then assume that the input also contains two strings. (2 pts)
Ex:
Enter input string: Jill Allen
Error: No comma in string
Enter input string: Jill, Allen
(3) Extract the two words from the input string and remove any spaces. Store the strings in two separate variables and output the strings. (2 pts)
Ex:
Enter input string: Jill, Allen
First word: Jill
Second word: Allen
(4) Using a loop, extend the program to handle multiple lines of input. Continue until the user enters q to quit. (2 pts)
Ex:
Enter input string: Jill, Allen
First word: Jill
Second word: Allen
Enter input string: Golden , Monkey
First word: Golden
Second word: Monkey
Enter input string: Washington,DC
First word: Washington
Second word: DC
Enter input string: q
Here is my code:
import java.util.Scanner;
public class ParseStrings {
public static void main(String[] args) {
/*Type your code here. */
Scanner scnr = new Scanner(System.in);
String userInput = " ";
boolean inputDone = false;
while (!inputDone) {
System.out.print("Enter input string: \n");
userInput = scnr.nextLine();
if(userInput.equals("q")) {
System.out.println("First word:" + userInput);
inputDone = true;
} else {
String[] userArray = userInput.split(",");
System.out.println("First word: " + userArray[0]);
System.out.println("Second word:" + userArray[1]);
System.out.println();
System.out.println();
}
}
return;
}
}
Output:
1. Compare output
1/1
Input
|
Jill, Allen q
|
Your output correctly starts with
|
Enter input string:
|
2. Compare output
0/2
Input
|
Jill Allen JillAllen Jill Allen q
|
Your output starts with
|
Enter input string: First word: Jill Allen Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 at ParseStrings.main(ParseStrings.java:20)
|
Expected output starts with
|
Enter input string: Error: No comma in string Enter input string: Error: No comma in string Enter input string: Error: No comma in string Enter input string:
|
3. Compare output
2/2
Input
|
Jill, Allen q
|
Your output correctly starts with
|
Enter input string: First word: Jill Second word: Allen
|
4. Compare output
0/1
Input
|
Jill, Allen Golden , Monkey Washington,DC q
|
Your output
|
Enter input string: First word: Jill Second word: Allen Enter input string: First word: Golden Second word: Monkey Enter input string: First word: Washington Second word:DC Enter input string: First word:q
|
Expected output
|
Enter input string: First word: Jill Second word: Allen Enter input string: First word: Golden Second word: Monkey Enter input string: First word: Washington Second word: DC Enter input string:
|
5. Compare output
0/1
Input
|
Clarke , Geffen Signals,Systems Macintosh, Apple q
|
Your output
|
Enter input string: First word: Clarke Second word: Geffen Enter input string: First word: Signals Second word:Systems Enter input string: First word: Macintosh Second word: Apple Enter input string: First word:q
|
Expected output
|
Enter input string: First word: Clarke Second word: Geffen Enter input string: First word: Signals Second word: Systems Enter input string: First word: Macintosh Second word: Apple Enter input string:
|