Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

4.

16 LAB: Parsing dates


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:


March 1, 1990
April 2 1995
7/15/20
December 13, 2003
-1

then the output is:


3/1/1990
12/13/2003

CODE (JAVA):

import java.util.Scanner;
import java.util.ArrayList;

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 = 00;
}

return monthInt;
}

public static void main(String[] args) {


Scanner scnr = new Scanner(System.in);
ArrayList<String> dates = new ArrayList<String>();
String d;
int i = 0;
while (true) {
d = scnr.nextLine();
if (d.equals("-1")) {
break;
}
dates.add(d);
}
for (i = 0; i < dates.size(); i++) {
try {
String month = dates.get(i).substring(0, dates.get(i).indexOf(" "));
String day = dates.get(i).substring(dates.get(i).indexOf(" ") + 1,
dates.get(i).indexOf(","));
String year = dates.get(i).substring(dates.get(i).indexOf(",") + 2,
dates.get(i).length());
System.out.println(getMonthAsInt(month) + "/" + day + "/" + year);
}
catch (Exception e) {
}
}
}
}

You might also like