📜  在Java中使用正则表达式查找用户输入的数据类型

📅  最后修改于: 2022-05-13 01:55:49.459000             🧑  作者: Mango

在Java中使用正则表达式查找用户输入的数据类型

给定一个字符串,任务是在Java中使用正则表达式找到它对应的数据类型。

我们可以将所有数据类型大致分为以下类型:

  1. 整数:byteshortintlong等数字数据类型采用 Integer 对象的形式。
  2. Double:浮点数精度数等十进制数据类型采用 Double 对象的形式。
  3. 日期:任何格式的日期(如 dd-mm-yyyy 或 dd/mm/yyyy)都是Java.util.Date 的一部分
  4. 字符串:所有剩余的输入都属于字符串类型。

注意:字符输入和布尔值也将被视为字符串。

例子:

方法:

  • 以字符串的形式输入。
  • 现在,如果输入仅包含数字,则它是一个 Integer 对象。如果它包含带小数点的数字,则它是一个 Double-object。如果输入是日期的形式,我们将其打印为Java.util.Date 对象。否则,我们说输入是一个可能包含字母数字和特殊字符的字符串对象。

下面是上述方法的实现:

Java
public class GFG {
 
    // method stub
    public static void main(String[] arg)
    {
 
        String input = "56.73";
        String dataType = null;
 
        // checking for Integer
        if (input.matches("\\d+")) {
            dataType = "java.lang.Integer";
        }
 
        // checking for floating point numbers
        else if (input.matches("\\d*[.]\\d+")) {
            dataType = "java.lang.Double";
        }
 
        // checking for date format dd/mm/yyyy
        else if (input.matches(
                     "\\d{2}[/]\\d{2}[/]\\d{4}")) {
            dataType = "java.util.Date";
        }
 
        // checking for date format mm/dd/yyyy
        else if (input.matches(
                     "\\d{2}[/]\\d{2}[/]\\d{4}")) {
            dataType = "java.util.Date";
        }
 
        // checking for date format dd-mon-yy
        else if (input.matches(
                     "\\d{2}[-]\\w{3}[-]\\d{2}")) {
            dataType = "java.util.Date";
        }
 
        // checking for date format dd-mon-yyyy
        else if (input.matches(
                     "\\d{2}[-]\\w{3}[-]\\d{4}")) {
            dataType = "java.util.Date";
        }
 
        // checking for date format dd-month-yy
        else if (input.matches("\\d{2}[-]\\w+[-]\\d{2}")) {
            dataType = "java.util.Date";
        }
 
        // checking for date format dd-month-yyyy
        else if (input.matches("\\d{2}[-]\\w+[-]\\d{4}")) {
            dataType = "java.util.Date";
        }
 
        // checking for date format yyyy-mm-dd
        else if (input.matches(
                     "\\d{4}[-]\\d{2}[-]\\d{2}")) {
            dataType = "java.util.Date";
        }
 
        // checking for String
        else {
            dataType = "java.lang.String";
        }
 
        System.out.println("The datatype of " + input
                           + " is: " + dataType);
    }
}



输出
The datatype of 56.73 is: java.lang.Double