Expresiones Regulares en Java y Colecciones Avanzadas

Capítulo 8: Expresiones Regulares en Java y Colecciones Avanzadas

Compartir

En este capítulo, exploraremos el uso de expresiones regulares en Java y las colecciones avanzadas como listas, conjuntos y mapas. Estos conceptos son fundamentales para el procesamiento de texto y la administración de datos en aplicaciones Java.

8.1. Expresiones Regulares en Java

Expresiones regulares (regex) son patrones utilizados para buscar y manipular cadenas de texto. Java proporciona la clase java.util.regex para trabajar con expresiones regulares. Algunos conceptos clave incluyen:

  • Patrón: Una expresión regular que describe un conjunto de cadenas.
  • Matcher: Un objeto que realiza búsquedas en una cadena utilizando un patrón.
  • Grupos: Partes de una cadena que coinciden con partes específicas del patrón.

Ejemplo 8.1.1: Uso de Expresiones Regulares

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ExpresionesRegulares {
    public static void main(String[] args) {
        String texto = "La dirección de correo electrónico es ejemplo@email.com";
        String patron = "\\b[\\w.%-]+@[-.\\w]+\\.[A-Za-z]{2,4}\\b";

        Pattern pattern = Pattern.compile(patron);
        Matcher matcher = pattern.matcher(texto);

        while (matcher.find()) {
            System.out.println("Correo encontrado: " + matcher.group());
        }
    }
}

8.2. Colecciones Avanzadas en Java

Las colecciones avanzadas son estructuras de datos utilizadas para almacenar y administrar datos. Algunos tipos comunes incluyen:

  • Listas: Almacenan elementos en un orden específico y permiten duplicados.
  • Conjuntos: Almacenan elementos únicos sin un orden específico.
  • Mapas: Almacenan pares clave-valor, donde cada clave se asigna a un valor único.

Ejemplo 8.2.1: Uso de Listas, Conjuntos y Mapas

import java.util.ArrayList;
import java.util.HashSet;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.Map;

public class ColeccionesAvanzadas {
    public static void main(String[] args) {
        // Listas
        List<String> listaNombres = new ArrayList<>();
        listaNombres.add("Juan");
        listaNombres.add("María");
        listaNombres.add("Pedro");

        // Conjuntos
        Set<String> conjuntoColores = new HashSet<>();
        conjuntoColores.add("Rojo");
        conjuntoColores.add("Verde");
        conjuntoColores.add("Azul");

        // Mapas
        Map<String, Integer> mapaEdades = new HashMap<>();
        mapaEdades.put("Juan", 30);
        mapaEdades.put("María", 25);
        mapaEdades.put("Pedro", 35);
    }
}

8.3. Ejercicios de Práctica

Ejercicio 8.3.1: Validación de Correos Electrónicos

Crea una aplicación que valide direcciones de correo electrónico en una lista de texto utilizando expresiones regulares. Las direcciones de correo electrónico válidas deben ser almacenadas en una lista.

Ejercicio 8.3.2: Gestión de Inventario

Desarrolla una aplicación que administre un inventario de productos. Utiliza una estructura de datos como un mapa para mantener un registro de los productos y sus cantidades en stock.

Resumen del Capítulo

En este capítulo, hemos explorado el uso de expresiones regulares en Java para buscar y manipular cadenas de texto. También hemos cubierto las colecciones avanzadas, como listas, conjuntos y mapas, que son fundamentales para administrar datos en aplicaciones Java. Los ejercicios proporcionados permiten a los lectores practicar y profundizar en su comprensión de estos conceptos clave de Java.

Respuesta ejercicio 8.3.1:

Para resolver el ejercicio de crear una aplicación que valide direcciones de correo electrónico en una lista de texto utilizando expresiones regulares y almacenar las direcciones válidas en una lista, sigue estos pasos:

Paso 1: Desarrollo de la Aplicación Java

Desarrolla la aplicación Java que realizará la validación de las direcciones de correo electrónico en la lista de texto y almacenará las direcciones válidas en otra lista.

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ValidadorCorreoElectronico {
    public static void main(String[] args) {
        // Lista de direcciones de correo electrónico
        List<String> direcciones = new ArrayList<>();
        direcciones.add("usuario1@email.com");
        direcciones.add("correo2@dominio.com");
        direcciones.add("correo3@com");
        direcciones.add("correo4@dominio");

        // Patrón de expresión regular para validar correos electrónicos
        String patron = "\\b[\\w.%-]+@[-.\\w]+\\.[A-Za-z]{2,4}\\b";
        Pattern pattern = Pattern.compile(patron);

        // Lista para almacenar direcciones de correo electrónico válidas
        List<String> validas = new ArrayList<>();

        // Validar las direcciones de correo electrónico
        for (String direccion : direcciones) {
            Matcher matcher = pattern.matcher(direccion);
            if (matcher.matches()) {
                validas.add(direccion);
            }
        }

        // Imprimir las direcciones de correo electrónico válidas
        System.out.println("Direcciones de correo electrónico válidas:");
        for (String valida : validas) {
            System.out.println(valida);
        }
    }
}

Paso 2: Ejecución del Programa

Ejecuta el programa para validar las direcciones de correo electrónico en la lista y almacenar las válidas en otra lista.

Resultado Esperado:

El programa mostrará las direcciones de correo electrónico válidas en la lista de direcciones proporcionada. En el ejemplo anterior, «usuario1@email.com» y «correo2@dominio.com» son direcciones válidas y se mostrarán como resultado.

Este ejercicio demuestra cómo validar direcciones de correo electrónico en una lista de texto utilizando expresiones regulares en Java y cómo almacenar las direcciones válidas en una lista separada. Puedes personalizar este ejemplo para realizar validaciones específicas de acuerdo a tus necesidades en tu aplicación.

Respuesta ejercicio 8.3.2:

Para resolver el ejercicio de crear una aplicación que administre un inventario de productos utilizando una estructura de datos como un mapa para mantener un registro de los productos y sus cantidades en stock, sigue estos pasos:

Paso 1: Desarrollo de la Aplicación Java

Desarrolla la aplicación Java que administra el inventario de productos utilizando un mapa. En este ejemplo, usaremos un HashMap para almacenar productos como claves y sus cantidades en stock como valores.

import java.util.HashMap;
import java.util.Map;

public class InventarioProductos {
    public static void main(String[] args) {
        // Crear un mapa para almacenar el inventario de productos
        Map<String, Integer> inventario = new HashMap<>();

        // Agregar productos y sus cantidades en stock al inventario
        inventario.put("Producto A", 10);
        inventario.put("Producto B", 5);
        inventario.put("Producto C", 15);

        // Actualizar la cantidad en stock de un producto
        inventario.put("Producto A", 12);

        // Obtener la cantidad en stock de un producto
        int cantidadProductoB = inventario.get("Producto B");
        System.out.println("Cantidad en stock de Producto B: " + cantidadProductoB);

        // Eliminar un producto del inventario
        inventario.remove("Producto C");

        // Imprimir el inventario completo
        System.out.println("Inventario de productos:");
        for (Map.Entry<String, Integer> entry : inventario.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue() + " unidades en stock");
        }
    }
}

Paso 2: Ejecución del Programa

Ejecuta el programa para administrar el inventario de productos utilizando el mapa.

Resultado Esperado:

El programa gestionará el inventario de productos, permitiendo agregar productos con sus cantidades en stock, actualizar las cantidades en stock, obtener la cantidad de un producto y eliminar productos del inventario. El inventario se imprimirá en la consola para mostrar los productos y sus cantidades en stock.

Este ejercicio muestra cómo usar una estructura de datos como un mapa en Java para gestionar un inventario de productos. Puedes personalizar este ejemplo para crear una aplicación de gestión de inventario más completa.


Compartir

Deja un comentario

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