這道題不想寫的那么麻煩,就百度了一下.java有現成的API可以使用,這里"yyyy/MM/dd"中的M必須大寫,否則解析失敗,害了我找錯誤找了好久...
另外,scanner的next不能輸入空格,他是以空格作為結束標志,而nextline則是以enter作為結束標志
~~~
SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd");//M是大寫
df.setLenient(false); //設置是否嚴格解析日期,不合法則則不可解析
~~~
完整代碼如下:
~~~
/**
* 用比較復雜的方法來實現,主要目的來熟悉dateformat
*/
import java.text.SimpleDateFormat;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd");//M是大寫
Scanner input = new Scanner(System.in);
String dateStr = input.nextLine();//next則不能接收空格
dateStr = dateStr.replaceAll(" ", "/");
try {
df.setLenient(false); //設置是否嚴格解析日期,不合法則則不可解析
df.parse(dateStr);
} catch (Exception e) {
System.out.println(0);
System.exit(0);
}
System.out.println(1);
}
}
~~~