嘿伙计,所以我的项目用于检查用户输入的格式为mm / dd / yyyy的日期是有效的,但现在我需要修改它以便它拒绝任何不是数字的东西。例如,如果我输入12/5 / abcd或aa / 12/2014,它应该给我一个错误。目前,如果我输入一个字母或字母进入程序,它会给出类似"之类的错误,你应该只输入有效的整数"。我使用分隔符来" /"分开月份和日期以及\ r \ n或在年末输入/返回以完成用户输入。
答案 0 :(得分:1)
只有整数检查不起作用(考虑有人输入30-02-2013
您需要专门验证日期,您应该将SimpleDateFormat
与setLenient(false)
答案 1 :(得分:0)
只需输入if条件来检查dd,mm和yy上的整数实例。像
if(x instanceof Integer){
...
}
答案 2 :(得分:0)
在我看来,使用Java正则表达式来使用下面的正则表达式验证输入日期。
([0-9]{2})\\([0-9]{2})\\([0-9]{4})
答案 3 :(得分:0)
如果您只关心数字与非数字,则可以使用简单的正则表达式进行验证。
import java.util.regex.*;
public class A{
public static void main(String[] args) {
String original = "12/24/1014";
Pattern mypattern = Pattern.compile("\\d{2}/\\d{2}/\\d{4}");
System.out.println(mypattern.matcher(original).matches());
// If not true, throw error.
}
}
答案 4 :(得分:0)
您可以使用以下日期。
SimpleDateFormat sdf = new SimpleDateFormat("mm/dd/yyyy");
boolean isValidDate(string input) {
try {
format.parse(input);
return true;
}
catch(ParseException e){
return false;
}
}