Extracción de Información de Cadenas en Java
Desliza para mostrar el menú
Al trabajar con texto en aplicaciones reales, rara vez se necesita toda la cadena; la mayoría de las veces solo se requiere una pequeña parte de ella. Un nombre dentro de un correo electrónico, un producto dentro de un mensaje de pedido o una palabra clave específica oculta en una oración. Java nos proporciona herramientas simples pero potentes para extraer exactamente lo que necesitamos.
substring()
Si necesitas tomar una "porción" de una cadena basada en posiciones de caracteres, utiliza .substring(). Se basa en indexación desde cero — la cuenta comienza desde 0. Devuelve un nuevo String.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; String drinkName = order.substring(6, 11); System.out.println(drinkName); } }
substring(6, 11) le indica a Java que comience en el índice 6 (incluido) y se detenga justo antes del índice 11 (excluido), extrayendo los caracteres en las posiciones 6 a 10, lo que nos da "Latte".
Si usas substring(start) con solo un argumento, Java extrae todo desde esa posición hasta el final de la cadena:
order.substring(6); // "Latte with oat milk"
indexOf()
Si necesitas encontrar dónde se encuentra un texto específico dentro de una cadena, utiliza .indexOf(). En lugar de cortar texto, lo localiza. Devuelve un int que representa el índice inicial de la coincidencia.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; int lattePosition = order.indexOf("Latte"); System.out.println(lattePosition); } }
Java escanea la cadena de izquierda a derecha hasta que encuentra "Latte" y devuelve la posición de su primer carácter — 6. Si el texto no se encuentra en ninguna parte de la cadena, Java devuelve -1.
Combinando ambos — Ejemplo real
Este ejemplo real combina indexOf() y substring() para extraer un nombre de usuario de una dirección de correo electrónico.
Main.java
1234567891011121314package com.example; public class Main { public static void main(String[] args) { String customerEmail = "anna.coffee@gmail.com"; int atPosition = customerEmail.indexOf("@"); String username = customerEmail.substring(0, atPosition); System.out.println(username); } }
indexOf("@") encuentra la posición del símbolo @, luego substring(0, atPosition) extrae todo desde el inicio de la cadena hasta — pero sin incluir — el @. El resultado es "anna.coffee". En lugar de codificar posiciones fijas, dejamos que Java localice el límite y extraiga exactamente lo que necesitamos.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Extracción de Información de Cadenas en Java
Al trabajar con texto en aplicaciones reales, rara vez se necesita toda la cadena; la mayoría de las veces solo se requiere una pequeña parte de ella. Un nombre dentro de un correo electrónico, un producto dentro de un mensaje de pedido o una palabra clave específica oculta en una oración. Java nos proporciona herramientas simples pero potentes para extraer exactamente lo que necesitamos.
substring()
Si necesitas tomar una "porción" de una cadena basada en posiciones de caracteres, utiliza .substring(). Se basa en indexación desde cero — la cuenta comienza desde 0. Devuelve un nuevo String.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; String drinkName = order.substring(6, 11); System.out.println(drinkName); } }
substring(6, 11) le indica a Java que comience en el índice 6 (incluido) y se detenga justo antes del índice 11 (excluido), extrayendo los caracteres en las posiciones 6 a 10, lo que nos da "Latte".
Si usas substring(start) con solo un argumento, Java extrae todo desde esa posición hasta el final de la cadena:
order.substring(6); // "Latte with oat milk"
indexOf()
Si necesitas encontrar dónde se encuentra un texto específico dentro de una cadena, utiliza .indexOf(). En lugar de cortar texto, lo localiza. Devuelve un int que representa el índice inicial de la coincidencia.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; int lattePosition = order.indexOf("Latte"); System.out.println(lattePosition); } }
Java escanea la cadena de izquierda a derecha hasta que encuentra "Latte" y devuelve la posición de su primer carácter — 6. Si el texto no se encuentra en ninguna parte de la cadena, Java devuelve -1.
Combinando ambos — Ejemplo real
Este ejemplo real combina indexOf() y substring() para extraer un nombre de usuario de una dirección de correo electrónico.
Main.java
1234567891011121314package com.example; public class Main { public static void main(String[] args) { String customerEmail = "anna.coffee@gmail.com"; int atPosition = customerEmail.indexOf("@"); String username = customerEmail.substring(0, atPosition); System.out.println(username); } }
indexOf("@") encuentra la posición del símbolo @, luego substring(0, atPosition) extrae todo desde el inicio de la cadena hasta — pero sin incluir — el @. El resultado es "anna.coffee". En lugar de codificar posiciones fijas, dejamos que Java localice el límite y extraiga exactamente lo que necesitamos.
¡Gracias por tus comentarios!