JAVA (1) Prompt the user for a title for data. Output the title. (1 pt) Ex: (2)
ID: 3777223 • Letter: J
Question
JAVA
(1) Prompt the user for a title for data. Output the title. (1 pt)
Ex:
(2) Prompt the user for the headers of two columns of a table. Output the column headers. (1 pt)
Ex:
(3) Prompt the user for data points. Data points must be in this format: string, int. Store the information before the comma into a string variable and the information after the comma into an integer. The user will enter -1 when they have finished entering data points. Output the data points. Store the string components of the data points in an ArrayList of strings. Store the integer components of the data points in a second ArrayList of integers. (4 pts)
Ex:
(4) Perform error checking for the data point entries. If any of the following errors occurs, output the appropriate error message and prompt again for a valid data point.
If entry has no comma
Output: Error: No comma in string. (1 pt)
If entry has more than one comma
Output: Error: Too many commas in input. (1 pt)
If entry after the comma is not an integer
Output: Error: Comma not followed by an integer. (2 pts)
Ex:
(5) Output the information in a formatted table. The title is right justified with a minimum of 33 characters. Column 1 is left justified with a minimum of 20 characters. Column 2 is right justified with a minimum of 23 characters. (3 pts)
Ex:
(6) Output the information as a formatted histogram. Each name is right justified with a minimum of 20 characters. (4 pts)
Ex:
Explanation / Answer
import java.util.ArrayList;
import java.util.Scanner;
public class InputFormatting {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a title for the data:");
String title = sc.nextLine();
System.out.println("You entered: " + title);
System.out.print("Enter the column 1 header:");
String columnHeader1 = sc.nextLine();
System.out.println("You entered: " + columnHeader1);
System.out.print("Enter the column 2 header:");
String columnHeader2 = sc.nextLine();
System.out.println("You entered: " + columnHeader2);
ArrayList<String> stringData = new ArrayList<String>();
ArrayList<Integer> integerData = new ArrayList<Integer>();
do{
System.out.print("Enter a data point(-1 to stop input): ");
String temp = sc.nextLine();
if(temp != null && "-1".equals(temp.trim()))
break;
if(temp == null || "".equals(temp.trim()) ||temp.indexOf(',') == -1){
System.out.println("Error: No comma in string.");
continue;
}
String[] info = temp.split(",");
if(info.length > 2){
System.out.println("Error: Too many commas in input.");
continue;
}
Integer intValue;
try{
intValue = new Integer(info[1].trim());
} catch(Exception e){
System.out.println("Error: Comma not follwed by an integer.");
continue;
}
System.out.println("Data string: " + info[0]);
System.out.println("Data integer: " + intValue.toString());
stringData.add(info[0]);
integerData.add(intValue);
} while(true);
if(stringData.isEmpty() || integerData.isEmpty())
return;
System.out.printf("%33s ", title);
System.out.printf("%-20s|%23s ", columnHeader1,columnHeader2);
System.out.println("-------------------------------------------");
for(int i = 0; (i < stringData.size() && i <integerData.size()); i++){
System.out.printf("%-20s|%23s ", stringData.get(i),integerData.get(i));
}
System.out.println("Histogram:");
for(int i = 0; (i < stringData.size() && i <integerData.size()); i++){
System.out.printf("%20s %s ", stringData.get(i),convertToStars(integerData.get(i).intValue()));
}
}
private static String convertToStars(int count){
StringBuffer stars = new StringBuffer("");
for(int i = 0; i < count; i++)
stars.append("*");
return stars.toString();
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.