{"id":2051,"date":"2023-11-30T08:57:05","date_gmt":"2023-11-30T11:57:05","guid":{"rendered":"https:\/\/stackcodelab.com\/blog\/?p=2051"},"modified":"2023-11-30T08:57:06","modified_gmt":"2023-11-30T11:57:06","slug":"capitulo-8-expresiones-regulares-en-java-y-colecciones-avanzadas","status":"publish","type":"post","link":"https:\/\/stackcodelab.com\/blog\/capitulo-8-expresiones-regulares-en-java-y-colecciones-avanzadas\/","title":{"rendered":"Cap\u00edtulo 8: Expresiones Regulares en Java y Colecciones Avanzadas"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">En este cap\u00edtulo, 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\u00f3n de datos en aplicaciones Java.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a>8.1. Expresiones Regulares en Java<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Expresiones regulares<\/strong>&nbsp;(regex) son patrones utilizados para buscar y manipular cadenas de texto. Java proporciona la clase&nbsp;<code>java.util.regex<\/code>&nbsp;para trabajar con expresiones regulares. Algunos conceptos clave incluyen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Patr\u00f3n<\/strong>: Una expresi\u00f3n regular que describe un conjunto de cadenas.<\/li>\n\n\n\n<li><strong>Matcher<\/strong>: Un objeto que realiza b\u00fasquedas en una cadena utilizando un patr\u00f3n.<\/li>\n\n\n\n<li><strong>Grupos<\/strong>: Partes de una cadena que coinciden con partes espec\u00edficas del patr\u00f3n.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo 8.1.1: Uso de Expresiones Regulares<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.util.regex.Matcher;\r\nimport java.util.regex.Pattern;\r\n\r\npublic class ExpresionesRegulares {\r\n    public static void main(String&#91;] args) {\r\n        String texto = \"La direcci\u00f3n de correo electr\u00f3nico es ejemplo@email.com\";\r\n        String patron = \"\\\\b&#91;\\\\w.%-]+@&#91;-.\\\\w]+\\\\.&#91;A-Za-z]{2,4}\\\\b\";\r\n\r\n        Pattern pattern = Pattern.compile(patron);\r\n        Matcher matcher = pattern.matcher(texto);\r\n\r\n        while (matcher.find()) {\r\n            System.out.println(\"Correo encontrado: \" + matcher.group());\r\n        }\r\n    }\r\n}\r<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><a>8.2. Colecciones Avanzadas en Java<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las&nbsp;<strong>colecciones avanzadas<\/strong>&nbsp;son estructuras de datos utilizadas para almacenar y administrar datos. Algunos tipos comunes incluyen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Listas<\/strong>: Almacenan elementos en un orden espec\u00edfico y permiten duplicados.<\/li>\n\n\n\n<li><strong>Conjuntos<\/strong>: Almacenan elementos \u00fanicos sin un orden espec\u00edfico.<\/li>\n\n\n\n<li><strong>Mapas<\/strong>: Almacenan pares clave-valor, donde cada clave se asigna a un valor \u00fanico.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo 8.2.1: Uso de Listas, Conjuntos y Mapas<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.util.ArrayList;\r\nimport java.util.HashSet;\r\nimport java.util.HashMap;\r\nimport java.util.List;\r\nimport java.util.Set;\r\nimport java.util.Map;\r\n\r\npublic class ColeccionesAvanzadas {\r\n    public static void main(String&#91;] args) {\r\n        \/\/ Listas\r\n        List&lt;String> listaNombres = new ArrayList&lt;>();\r\n        listaNombres.add(\"Juan\");\r\n        listaNombres.add(\"Mar\u00eda\");\r\n        listaNombres.add(\"Pedro\");\r\n\r\n        \/\/ Conjuntos\r\n        Set&lt;String> conjuntoColores = new HashSet&lt;>();\r\n        conjuntoColores.add(\"Rojo\");\r\n        conjuntoColores.add(\"Verde\");\r\n        conjuntoColores.add(\"Azul\");\r\n\r\n        \/\/ Mapas\r\n        Map&lt;String, Integer> mapaEdades = new HashMap&lt;>();\r\n        mapaEdades.put(\"Juan\", 30);\r\n        mapaEdades.put(\"Mar\u00eda\", 25);\r\n        mapaEdades.put(\"Pedro\", 35);\r\n    }\r\n}\r<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><a>8.3. Ejercicios de Pr\u00e1ctica<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejercicio 8.3.1: Validaci\u00f3n de Correos Electr\u00f3nicos<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Crea una aplicaci\u00f3n que valide direcciones de correo electr\u00f3nico en una lista de texto utilizando expresiones regulares. Las direcciones de correo electr\u00f3nico v\u00e1lidas deben ser almacenadas en una lista.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejercicio 8.3.2: Gesti\u00f3n de Inventario<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Desarrolla una aplicaci\u00f3n 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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Resumen del Cap\u00edtulo<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En este cap\u00edtulo, hemos explorado el uso de expresiones regulares en Java para buscar y manipular cadenas de texto. Tambi\u00e9n 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\u00f3n de estos conceptos clave de Java.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a>Respuesta ejercicio 8.3.1:<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para resolver el ejercicio de crear una aplicaci\u00f3n que valide direcciones de correo electr\u00f3nico en una lista de texto utilizando expresiones regulares y almacenar las direcciones v\u00e1lidas en una lista, sigue estos pasos:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Paso 1: Desarrollo de la Aplicaci\u00f3n Java<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Desarrolla la aplicaci\u00f3n Java que realizar\u00e1 la validaci\u00f3n de las direcciones de correo electr\u00f3nico en la lista de texto y almacenar\u00e1 las direcciones v\u00e1lidas en otra lista.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.util.ArrayList;\r\nimport java.util.List;\r\nimport java.util.regex.Matcher;\r\nimport java.util.regex.Pattern;\r\n\r\npublic class ValidadorCorreoElectronico {\r\n    public static void main(String&#91;] args) {\r\n        \/\/ Lista de direcciones de correo electr\u00f3nico\r\n        List&lt;String> direcciones = new ArrayList&lt;>();\r\n        direcciones.add(\"usuario1@email.com\");\r\n        direcciones.add(\"correo2@dominio.com\");\r\n        direcciones.add(\"correo3@com\");\r\n        direcciones.add(\"correo4@dominio\");\r\n\r\n        \/\/ Patr\u00f3n de expresi\u00f3n regular para validar correos electr\u00f3nicos\r\n        String patron = \"\\\\b&#91;\\\\w.%-]+@&#91;-.\\\\w]+\\\\.&#91;A-Za-z]{2,4}\\\\b\";\r\n        Pattern pattern = Pattern.compile(patron);\r\n\r\n        \/\/ Lista para almacenar direcciones de correo electr\u00f3nico v\u00e1lidas\r\n        List&lt;String> validas = new ArrayList&lt;>();\r\n\r\n        \/\/ Validar las direcciones de correo electr\u00f3nico\r\n        for (String direccion : direcciones) {\r\n            Matcher matcher = pattern.matcher(direccion);\r\n            if (matcher.matches()) {\r\n                validas.add(direccion);\r\n            }\r\n        }\r\n\r\n        \/\/ Imprimir las direcciones de correo electr\u00f3nico v\u00e1lidas\r\n        System.out.println(\"Direcciones de correo electr\u00f3nico v\u00e1lidas:\");\r\n        for (String valida : validas) {\r\n            System.out.println(valida);\r\n        }\r\n    }\r\n}\r<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Paso 2: Ejecuci\u00f3n del Programa<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ejecuta el programa para validar las direcciones de correo electr\u00f3nico en la lista y almacenar las v\u00e1lidas en otra lista.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Resultado Esperado:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El programa mostrar\u00e1 las direcciones de correo electr\u00f3nico v\u00e1lidas en la lista de direcciones proporcionada. En el ejemplo anterior, \u00ab<a href=\"mailto:usuario1@email.com\">usuario1@email.com<\/a>\u00bb y \u00ab<a href=\"mailto:correo2@dominio.com\">correo2@dominio.com<\/a>\u00bb son direcciones v\u00e1lidas y se mostrar\u00e1n como resultado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este ejercicio demuestra c\u00f3mo validar direcciones de correo electr\u00f3nico en una lista de texto utilizando expresiones regulares en Java y c\u00f3mo almacenar las direcciones v\u00e1lidas en una lista separada. Puedes personalizar este ejemplo para realizar validaciones espec\u00edficas de acuerdo a tus necesidades en tu aplicaci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a>Respuesta ejercicio 8.3.2:<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para resolver el ejercicio de crear una aplicaci\u00f3n 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:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Paso 1: Desarrollo de la Aplicaci\u00f3n Java<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Desarrolla la aplicaci\u00f3n Java que administra el inventario de productos utilizando un mapa. En este ejemplo, usaremos un&nbsp;<code>HashMap<\/code>&nbsp;para almacenar productos como claves y sus cantidades en stock como valores.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.util.HashMap;\r\nimport java.util.Map;\r\n\r\npublic class InventarioProductos {\r\n    public static void main(String&#91;] args) {\r\n        \/\/ Crear un mapa para almacenar el inventario de productos\r\n        Map&lt;String, Integer> inventario = new HashMap&lt;>();\r\n\r\n        \/\/ Agregar productos y sus cantidades en stock al inventario\r\n        inventario.put(\"Producto A\", 10);\r\n        inventario.put(\"Producto B\", 5);\r\n        inventario.put(\"Producto C\", 15);\r\n\r\n        \/\/ Actualizar la cantidad en stock de un producto\r\n        inventario.put(\"Producto A\", 12);\r\n\r\n        \/\/ Obtener la cantidad en stock de un producto\r\n        int cantidadProductoB = inventario.get(\"Producto B\");\r\n        System.out.println(\"Cantidad en stock de Producto B: \" + cantidadProductoB);\r\n\r\n        \/\/ Eliminar un producto del inventario\r\n        inventario.remove(\"Producto C\");\r\n\r\n        \/\/ Imprimir el inventario completo\r\n        System.out.println(\"Inventario de productos:\");\r\n        for (Map.Entry&lt;String, Integer> entry : inventario.entrySet()) {\r\n            System.out.println(entry.getKey() + \": \" + entry.getValue() + \" unidades en stock\");\r\n        }\r\n    }\r\n}\r<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Paso 2: Ejecuci\u00f3n del Programa<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ejecuta el programa para administrar el inventario de productos utilizando el mapa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Resultado Esperado:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El programa gestionar\u00e1 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\u00e1 en la consola para mostrar los productos y sus cantidades en stock.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este ejercicio muestra c\u00f3mo usar una estructura de datos como un mapa en Java para gestionar un inventario de productos. Puedes personalizar este ejemplo para crear una aplicaci\u00f3n de gesti\u00f3n de inventario m\u00e1s completa.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este cap\u00edtulo, 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\u00f3n de datos en aplicaciones Java. 8.1. Expresiones Regulares en Java Expresiones regulares&nbsp;(regex) son patrones utilizados para buscar y manipular cadenas de texto. Java [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2052,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[40],"tags":[44],"class_list":["post-2051","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java-y-otras-hierbas","tag-expresiones-regulares-en-java-y-colecciones-avanzadas"],"uagb_featured_image_src":{"full":["https:\/\/stackcodelab.com\/blog\/wp-content\/uploads\/2023\/11\/Expresiones-Regulares.jpg",1000,562,false],"thumbnail":["https:\/\/stackcodelab.com\/blog\/wp-content\/uploads\/2023\/11\/Expresiones-Regulares-150x150.jpg",150,150,true],"medium":["https:\/\/stackcodelab.com\/blog\/wp-content\/uploads\/2023\/11\/Expresiones-Regulares-300x169.jpg",300,169,true],"medium_large":["https:\/\/stackcodelab.com\/blog\/wp-content\/uploads\/2023\/11\/Expresiones-Regulares-768x432.jpg",768,432,true],"large":["https:\/\/stackcodelab.com\/blog\/wp-content\/uploads\/2023\/11\/Expresiones-Regulares.jpg",1000,562,false],"1536x1536":["https:\/\/stackcodelab.com\/blog\/wp-content\/uploads\/2023\/11\/Expresiones-Regulares.jpg",1000,562,false],"2048x2048":["https:\/\/stackcodelab.com\/blog\/wp-content\/uploads\/2023\/11\/Expresiones-Regulares.jpg",1000,562,false]},"uagb_author_info":{"display_name":"arquitecto","author_link":"https:\/\/stackcodelab.com\/blog\/author\/arquitecto\/"},"uagb_comment_info":0,"uagb_excerpt":"En este cap\u00edtulo, 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\u00f3n de datos en aplicaciones Java. 8.1. Expresiones Regulares en Java Expresiones regulares&nbsp;(regex) son patrones utilizados para buscar y manipular cadenas de texto. Java&hellip;","_links":{"self":[{"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/posts\/2051","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/comments?post=2051"}],"version-history":[{"count":1,"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/posts\/2051\/revisions"}],"predecessor-version":[{"id":2053,"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/posts\/2051\/revisions\/2053"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/media\/2052"}],"wp:attachment":[{"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/media?parent=2051"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/categories?post=2051"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stackcodelab.com\/blog\/wp-json\/wp\/v2\/tags?post=2051"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}