这道题不想写的那么麻烦,就百度了一下.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);
}
}
~~~