【问题标题】:Java - How to accept only integers on date input?Java - 如何在日期输入中只接受整数?
【发布时间】:2014-03-31 19:53:56
【问题描述】:
大家好,我的项目用于检查用户以 mm/dd/yyyy 格式输入的日期,但现在我需要对其进行修改,以便它拒绝任何非数字的内容。例如,如果我输入 12/5/abcd 或 aa/12/2014 它应该返回一个错误。目前,如果我在程序中输入一个字符或字母,它会给出一个错误,比如“你应该只输入有效的整数”。我正在使用“/”的分隔符来分隔月份和日期,并在年底使用 \r 或输入/返回以完成用户输入。
【问题讨论】:
标签:
java
date
integer
java.util.scanner
【解决方案2】:
在我看来,使用 Java 正则表达式来验证输入日期使用下面的正则表达式。
([0-9]{2})\\([0-9]{2})\\([0-9]{4})
【解决方案3】:
如果您只关心数字与非数字,您可以使用简单的正则表达式进行验证。
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】:
您可以使用以下日期。
SimpleDateFormat sdf = new SimpleDateFormat("mm/dd/yyyy");
boolean isValidDate(string input) {
try {
format.parse(input);
return true;
}
catch(ParseException e){
return false;
}
}
【解决方案5】:
只需放置一个 if 条件来检查 dd、mm 和 yy 上的整数实例。喜欢
if(x instanceof Integer){
...
}