Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Complete main ( ) to read dates from input, one date per line. Each date's format must be as follows: March 1 , 1 9

Complete main() to read dates from input, one date per line. Each date's format must be as follows: March 1,1990. Any date not following
that format is incorrect and should be ignored. Use the substring() method to parse the string and extract the date. The input ends with -1
on a line alone. Output each correct date as: 3-1-1990.
Ex: If the input is:
then the output is:
3-1-1990
12-13-2003
Use the provided getMonthAsInt() method to convert a month string to an integer. If the month string is valid, an integer in the range 1 to 12
inclusive is returned, otherwise 0 is returned. Ex: getMonthAs Int ("February") returns 2 and getMonthAs Int ("7/15/20") returns
import java.util.Scanner;
public class DateParser {
public static int getMonthAsInt(String monthString){
int monthInt;
// Java switch/case statement
switch (monthString){
case "January": monthInt =1; break;
case "February": monthInt =2; break;
case "March": monthInt =3; break;
case "April": monthInt =4; break;
case "May": monthInt =5; break;
case "June": monthInt =6; break;
case "July": monthInt =7; break;
case "August": monthInt =8; break;
case "September": monthInt =9; break;
case "October": monthInt =10; break;
case "November": monthInt =11; break;
case "December": monthInt =12; break;
default: monthInt =0;
}
return monthInt;
}
public static int getDayAsInt(String day){
String temp ="";
int dayInt;
char c = day.charAt(day.length()-1);
if (c ==','){
for(int i =0; i day.length()-1; i++){
temp += day.charAt(i);
}
} else {
temp = day;
}
try {
dayInt = Integer.parseInt(temp.trim());
} catch (NumberFormatException e){
dayInt =0;
}
return dayInt;
}
public static void main(String[] args){
Scanner scnr = new Scanner(System.in);
String line;
String month;
String day;
String year;
int imonth;
int iday;
int iyear;
while (scnr.hasNextLine()){
line = scnr.nextLine();
if (line.equals("-1")){
break;
}
Scanner lineScanner = new Scanner(line);
if (lineScanner.hasNext()){
month = lineScanner.next();
imonth = getMonthAsInt(month);
if (imonth ==0){
continue;
}
if (lineScanner.hasNext()){
day = lineScanner.next();
iday = getDayAsInt(day);
if (iday ==0){
continue;
}
if (lineScanner.hasNext()){
year = lineScanner.next();
iyear = Integer.parseInt(year.trim());
System.out.println(imonth +"-"+ iday +"-"+ iyear);
}
}
}
lineScanner.close();
}
scnr.close();
}
}
image text in transcribed

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Visual Basic6 Database Programming

Authors: John W. Fronckowiak, David J. Helda

1st Edition

0764532545, 978-0764532542

More Books

Students also viewed these Databases questions