Java用户输入YY-MM-DD格式

时间:2016-02-22 15:11:03

标签: java regex string date comparison

这是针对数据结构中的赋值,我似乎找不到我需要的确切答案。

我试图获取日期的用户输入,最好是YY-MM-DD格式,然后检查有效性..如果无效,则循环直到有效。这看起来非常乏味,我收到了两次非法的表达错误启动。

我在Google和StackOverflow上进行了搜索,但只找到了解决日期的问题

public String hireDate(){
    Scanner input = new Scanner(System.in);
    boolean answer = false;
    while(answer == false){
        String temp = input.nextLine();
        if((temp.charAt(0) >= 0 && temp.charAt(0) <= 9) && (temp.charAt(1)
                >= 0 && temp.charAt(1) <= 9) && (temp.charAt(2) == -) 
                && (temp.charAt(3) >= 0 && temp.charAt(3) <= 9) && (temp.charAt(4)
                >= 0 && temp.charAt(4) <= 9) && (temp.charAt(5) == -)
                && (temp.charAt(6) >= 0 && temp.charAt(6) <= 9)){
            answer = true;
        } else {
            answer = false;
        }    
    }
    return temp;
}

2 个答案:

答案 0 :(得分:1)

您可以使用Regex轻松完成。只需检查输入字符串是否与您的模式(YY-MM-DD)匹配

if (temp.matches("\\d{2}-\\d{2}-\\d{2}")) 

答案 1 :(得分:1)

temp.charAt(1)>=0

您正在将字符与整数进行比较。