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

C++ for Engineers and Scientists
4th Edition
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Bronson, Gary J.
Chapter2: Problem Solving Using C++using
Section2.3: Data Types
Problem 5E
icon
Related questions
Question

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 I am using:

import java.util.Scanner;

public class DateParser {
public static int getMonthAsInt(String monthString) {
int monthInt;

switch (monthstr) {

 

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 date;

String month;

String day;

String year;

int i = 0;

 

System.out.println("Enter the dates:");


while (true) {

date = scnr.nextLine();

if (date.equals("-1")) {

break;

}

dates.add(date);

}


for (i = 0; i < dates.size(); i++) {

try {

month = dates.get(i).substring(0, dates.get(i).indexOf(" "));

day = dates.get(i).substring(dates.get(i).indexOf(" ") + 1, dates.get(i).indexOf(","));

year = dates.get(i).substring(dates.get(i).indexOf(",") + 2, dates.get(i).length());

System.out.println(Monthvalue(month) + "/" + day + "/" + year);

} catch (Exception e) {}

}

}

}

Response I am getting:

DateParser.java:7: error: cannot find symbol switch (monthstr) { ^ symbol: variable monthstr location: class DateParser DateParser.java:7: error: illegal parenthesized expression switch (monthstr) { ^ DateParser.java:127: error: cannot find symbol ArrayList<String>dates = new ArrayList<String>(); ^ symbol: class ArrayList location: class DateParser DateParser.java:127: error: cannot find symbol ArrayList<String>dates = new ArrayList<String>(); ^ symbol: class ArrayList location: class DateParser DateParser.java:173: error: cannot find symbol System.out.println(Monthvalue(month) + "/" + day + "/" + year); ^ symbol: method Monthvalue(String) location: class DateParser 5 errors

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 5 steps with 3 images

Blurred answer
Knowledge Booster
Problems on Dynamic Programming
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ for Engineers and Scientists
C++ for Engineers and Scientists
Computer Science
ISBN:
9781133187844
Author:
Bronson, Gary J.
Publisher:
Course Technology Ptr