Encontrar el tipo de datos de la entrada del usuario usando expresiones regulares en Java

Dada una string, la tarea es encontrar su tipo de datos correspondiente usando una expresión regular en Java.

En términos generales, podemos clasificar todos los tipos de datos en los siguientes tipos:

  1. Entero: los tipos de datos numéricos como byte , short , int , long toman la forma de un objeto Integer.
  2. Doble: los tipos de datos decimales como float y double toman la forma de objeto Double.
  3. Fecha: la fecha en cualquier formato (como dd-mm-yyyy o dd/mm/yyyy) es parte de java.util.Date
  4. String: Todas las entradas restantes vienen bajo el tipo String.

Nota: las entradas de caracteres y los valores booleanos también se considerarán como strings.

Ejemplos:

Entrada: “56.73”

Salida: java.lang.Double

Explicación: 56.73 es del tipo de datos flotantes que forman parte de java.lang.Double

Entrada: «verdadero»

Salida: java.lang.String

Explicación: aquí true se considera una string normal que forma parte de java.lang.String

Acercarse:

  • Toma la entrada en forma de string.
  • Ahora, si la entrada contiene solo dígitos, es un objeto Integer. Si contiene números con punto decimal, es un objeto doble. Si la entrada tiene la forma de una fecha, la imprimimos como objeto java.util.Date. De lo contrario, decimos que la entrada es un objeto String que puede contener caracteres alfanuméricos y especiales.

A continuación se muestra la implementación del enfoque anterior:

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);
    }
}
Producción

The datatype of 56.73 is: java.lang.Double

Publicación traducida automáticamente

Artículo escrito por SAKSHIKULSHRESHTHA y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *