我需要从接收字符串变量的构造函数验证日期mm / dd。我尝试了几种没有运气的方法。最后我试过将字符串转换为ascii并验证这种方式,但是不起作用:
public Dated(String dateStr)
{
this.dateStr = dateStr;
for (int i = 0; i < dateStr.length(); i++)
{
char c = dateStr.charAt(i);
asciiValues = (int) c; // change each string character to ASCII value
}
}
public void display()
{
System.out.println(asciiValues);
}
答案 0 :(得分:0)
据我所知,你在解析字符串值时遇到了麻烦。右。
在java中,我们有一些可用于验证这些内容的工具。
我将使用SimpleDateFormat
实用工具类来验证日期并将Date
转换为String
public class Dated{
private SimpleDateFormat sdf = new SimpleDateFormat("MM/dd") // M --> Month; d--> Day
public Dated(String dateStr) throws Exception{
try{
Date d = sdf.parse(dateStr);
System.out.println( d );
} catch (ParseException e) {
// you can throw that exception just to
// avoid creating the object of this class
throw e;
}
}
}
但请记住,您并未通过@JB Nizet
确认闰年的日期。
您也可以通过验证年份来克服这一点。
在上面的代码中,如果您通过“02/29”,您将获得3月1日的日期。这不是正确的日期,因为1970年不是闰年。
所以我也会在我的日期验证中包括年份。
要添加年份,您可以将SimpleDateFormat更改为如下所示。
private SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); // y --> Year