我無法讓我的開關工作。我得到一個不可編譯的源代碼Date.java:75。此外,當程序返回結果時 - 我希望它還會返回MONTH NAME DD,YYYY以及我已經做的MM/DD/YYYY。如果你能指出我正確的方向,我會很感激。Java開關不工作
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class Date {
private GregorianCalendar date = null;
private String[] months = new String[]{ "january", "february", "march", "april", "may",
"june", "july", "august", "september", "october", "november", "december" };
public Date(int month, int day, int year) {
date = new GregorianCalendar(year, month-1, day);
}
public Date(String month, int day, int year) {
date = new GregorianCalendar(year, this.getMonth(month), day);
}
public Date(int dayOfYear, int year) {
date = new GregorianCalendar();
date.set(Calendar.DAY_OF_YEAR, dayOfYear);
date.set(Calendar.YEAR, year);
}
private int getMonth(String month) {
for (int i=0; i<months.length; ++i)
if (month.toLowerCase().equals(months)) //equals(months))
return i;
return 0;
}
public String toString() {
return date.get(Calendar.MONTH)+1 + "-" + date.get(Calendar.DATE) + "-" + date.get(Calendar.YEAR);
}
public static void main(String[] args) {
int mo;
int dy;
int yr;
String moo; // Month name string
boolean wrongInput = false;
do {
Scanner input = new Scanner(System.in); // scanner to read input
wrongInput = false;
int menu = input.nextInt(); // menu selection
System.out.printf("Enter 1 for format: MM/DD/YYYY \n");
System.out.printf("Enter 2 for format: Month DD,YYYY \n");
System.out.printf("Enter 3 to exit \n");
System.out.printf("Choice:");
switch(menu)
{
case '1' : // MM/DD/YYYY UI
System.out.printf("Enter Month (1-12): ");
mo = input.nextInt();
System.out.printf("Enter Day of Month: ");
dy = input.nextInt();
System.out.printf("Enter Year: ");
yr = input.nextInt();
Date a = new Date(mo, dy, yr); //chew
System.out.println(a); //spit
break;
case '2' : // Month DD,YYYY UI
System.out.printf("Enter Month name: ");
moo = input.next();
System.out.printf("Enter Day of Month: ");
dy = input.nextInt();
System.out.printf("Enter Year: ");
yr = input.nextInt();
Date b = new Date(moo, dy, yr); //chew
System.out.println(b); //spit
break;
case '3' : // EOP
System.exit(0);
break;
default:
System.out.println("Invalid selection.");
wrongInput = true;
break;
}
while(wrongInput);
}
我作出改變,但是我仍然收到線程錯誤異常「主」了java.lang.RuntimeException:不可編譯源代碼 - 在解析時達到了文件結尾 \t at date.Date.main(Date.java:75) – Joe 2014-10-06 16:48:51