我的Eclipse出了问题,我正在使用MAC OS。
我不知道为什么会出现错误:"令牌“无效字符”上的语法错误,删除此令牌"。愿有人告诉我为什么吗?我在某个地方搜索,但无法找到解决此问题的方法。
这是我的代码:
package _Java_tuan1;
import java.util.Scanner;
public class Date {
private String month;
private int day, year;
public Date(){
month = "January";
day = 1;
year = 1000;
}
public Date(int monthInt, int day, int year){
setDate(monthInt, day, year);
}
public Date(String monthString, int day, int year){
setDate(monthString, day, year);
}
public Date(int year){
setDate(1, 1, year);
}
public Date(Date aDate){
if (aDate == null){
System.out.println("Fatal Error.");
System.exit(0);
}
month = aDate.month;
day = aDate.day;
year = aDate.year;
}
public void setDate(int monthInt, int day, int year){
if(dateOK(monthInt, day, year)){
this.month = monthString(monthInt);
this.day = day;
this.year = year;
}else{
System.out.println("Fatal Error");
System.exit(0);
}
}
public void setDate(String monthString, int day, int year){
if(dateOK(monthString, day, year)){
this.month = monthString;
this.day = day;
this.year = year;
}
else{
System.out.println("Fatal Error");
System.exit(0);
}
}
public void setDate(int year){
setDate(1, 1, year);
}
public void setYear(int year){
if( (year < 1000) || (year > 9999)){
System.out.println("Fatal Error");
System.exit(0);
}
else{
this.year = year;
}
}
public void setMonth(int monthNumber){
if((monthNumber <= 0) || (monthNumber > 12)){
System.out.println("Fatal Error");
System.exit(0);
}
else{
month = monthString(monthNumber);
}
}
public void setDay(int day){
if((day <= 0) || (day > 31)){
System.out.println("Fatal Error");
System.exit(0);
}
else{
this.day = day;
}
}
public int getMonth(){
if(month.equals("January")){
return 1;
}
else if(month.equals("February")){
return 2;
}
else if(month.equals("March")){
return 3;
}
else if(month.equals("April")){
return 4;
}
else if(month.equals("May")){
return 5;
}
else if(month.equals("June")){
return 6;
}
else if(month.equals("July")){
return 7;
}
else if(month.equals("August")){
return 8;
}
else if(month.equals("Septemper")){
return 9;
}
else if(month.equals("October")){
return 10;
}
else if(month.equals("November")){
return 11;
}
else if(month.equals("December")){
return 12;
}
else{
System.out.println("Fatal Error");
System.exit(0);
return 0;
}
}
public int getDay(){
return day;
}
public int getYear(){
return year;
}
public String toString(){
return (month +" "+day+", "+year);
}
public boolean equals(Date otherDate){
 return ((month.equals(otherDate.month)) && (day == otherDate.day) && (year == otherDate.year));
}
public boolean precedes(Date otherDay){
return ( (year < otherDay.year) || (year == otherDay.year) && getMonth() < otherDay.getMonth() ||
(year == otherDay.year && month.equals(otherDay.month) && day < otherDay.day));
}
public void readInput(){
boolean tryAgain = true;
Scanner keyboard = new Scanner(System.in);
while(tryAgain){
System.out.println("Enter month, day, and year.");
System.out.println("Do not use a comma.");
String monthInput = keyboard.next();
int dayInput = keyboard.nextInt();
int yearInput = keyboard.nextInt();
if (dateOK(monthInput, dayInput, yearInput) ){
setDate(monthInput, dayInput, yearInput);
tryAgain = false;
}
else
System.out.println("Illegal date. Reenter input.");
}
}
private boolean dateOK(int monthInt, int dayInt, int yearInt){
return ( (monthInt >= 1) && (monthInt <= 12) && (dayInt >= 1) && (dayInt <= 31) &&
(yearInt >= 1000) && (yearInt <= 9999) );
}
private boolean dateOK(String monthString, int dayInt, int yearInt){
return (monthOK(monthString) && (dayInt >= 1) && (dayInt <= 31) && (yearInt >= 1000) && (yearInt <= 9999));
}
private boolean monthOK(String month){
return (month.equals("January")
|| month.equals("February")
|| month.equals("March")
|| month.equals("April")
|| month.equals("May")
|| month.equals("May")
|| month.equals("May")
|| month.equals("June")
|| month.equals("July")
|| month.equals("August")
|| month.equals("Septemper")
|| month.equals("Octobor")
|| month.equals("November")
|| month.equals("December"));
}
private String monthString(int monthNumber){
switch(monthNumber){
case 1: return "January";
case 2: return "February";
case 3: return "March";
case 4: return "April";
case 5: return "May";
case 6: return "June";
case 7: return "July";
case 8: return "August";
case 9: return "Septemper";
case 10: return "October";
case 11: return "November";
case 12: return "December";
default:
System.out.println("Fatal Error");
System.exit(0);
return "Error";
}
}
}
答案 0 :(得分:2)
您是否粘贴了Windows的代码? 删除最后几个字符并重新输入 - 我认为它会消失