Java - 如何仅在日期输入上接受整数?

时间:2014-03-31 19:53:56

标签: java date integer java.util.scanner

嘿伙计,所以我的项目用于检查用户输入的格式为mm / dd / yyyy的日期是有效的,但现在我需要修改它以便它拒绝任何不是数字的东西。例如,如果我输入12/5 / abcd或aa / 12/2014,它应该给我一个错误。目前,如果我输入一个字母或字母进入程序,它会给出类似"之类的错误,你应该只输入有效的整数"。我使用分隔符来" /"分开月份和日期以及\ r \ n或在年末输入/返回以完成用户输入。

5 个答案:

答案 0 :(得分:1)

只有整数检查不起作用(考虑有人输入30-02-2013

您需要专门验证日期,您应该将SimpleDateFormatsetLenient(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;
         }
    }