检查用户输入插入的字符串是否与特定格式相对应

时间:2014-01-31 16:14:58

标签: java string date joptionpane

我有这种方法要求用户输入特定格式的输入(日期) - DD / MM / YYYY并且我设法通过这种方式使用此代码部分限制用户输入

date.matches("[0-9]+[0-9]/[0-9]+[0-9]/[0-9]+[0-9]+[0-9]+[0-9]"));

但我仍然在输入上遇到问题,因为如果用户插入一个像12121/12121212/12121这样的日期,那么它就像一个好的输入并继续前进

输入cicle由使用JOptionPane的代码部分确定

String date  = JOptionPane.showInputDialog(frame,"Inserisci la data di partenza separata da / (GG/MM/AAAA):");
    if (date ==null) { return;}
    while (!date.matches("[0-9]+[0-9]/[0-9]+[0-9]/[0-9]+[0-9]+[0-9]+[0-9]")) {          
        JOptionPane.showMessageDialog(frame, "Data inserita errata");
        date  = JOptionPane.showInputDialog(frame,"Inserisci la data di partenza separata da / (GG/MM/AAAA):"); }

然后我使用

拆分字符串
String[] parts = date.split("/");
    int year = Integer.parseInt(parts[2]);
    int month = Integer.parseInt(parts[1]);
    int day = Integer.parseInt(parts[0]);

我怎样才能使这个工作限制插入字符串的位数?

1 个答案:

答案 0 :(得分:1)

您应该尝试将其解析为给定格式的日期并捕获解析错误。看看SimpleDateFormat