Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Finding Data Type of User Input using Regular Expression in Java

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Given a string, the task is to find its corresponding datatype using regular expression in java.

We can broadly classify all data types into following types:

  1. Integer: Numeric datatypes like byte, short, int, long take the form of an Integer object.
  2. Double: Decimal datatypes like float and double take the form of Double object.
  3. Date: Date in any format (like dd-mm-yyyy or dd/mm/yyyy) is a part of java.util.Date
  4. String: All remaining inputs come under the String type.

Note: Character inputs and boolean values will also be considered as string.

Examples:

Input: “56.73”

Output: java.lang.Double

Explanation: 56.73 is of float data type which are part of java.lang.Double

Input: “true”

Output: java.lang.String

Explanation: Here true is considered as a regular string which is a part of java.lang.String

Approach:

  • Take input in the form of a string.
  • Now if the input contains only digits, it is an Integer object. If it contains numbers with a decimal point, it is a Double-object. If the input is in the form of a Date, we print it as java.util.Date object. Else, we say that the input is a String object which may contain alphanumeric and special characters.

Below is the implementation of the above approach:

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);
    }
}

 
 

Output

The datatype of 56.73 is: java.lang.Double

 


My Personal Notes arrow_drop_up
Last Updated : 16 Oct, 2020
Like Article
Save Article
Similar Reads
Related Tutorials