Manipulación de Strings en Java

Las operaciones con strings son esenciales para procesar datos, realizar búsquedas y transformar información. En este artículo, exploraremos las diversas técnicas y métodos disponibles para la manipulación de Strings en Java, desde la extracción de subcadenas hasta la búsqueda, reemplazo y eliminación de espacios. A través de ejemplos prácticos, aprenderás cómo aplicar estas herramientas para mejorar la eficiencia y efectividad de tu código.

Substrings

El método substring() extrae una parte de la cadena.

Substring con un Solo Parámetro

Extrae una subcadena desde un índice hasta el final.

public class SubstringSimple {
    public static void main(String[] args) {
        String str = "Hello World";
        String subcadena = str.substring(6);
        System.out.println(subcadena);  // Salida: World
    }
}

Substring con Dos Parámetros

Extrae una subcadena desde un índice hasta otro índice.

public class SubstringRango {
    public static void main(String[] args) {
        String str = "Hello World";
        String subcadena = str.substring(0, 5);
        System.out.println(subcadena);  // Salida: Hello
    }
}

Búsqueda en Strings

Método indexOf()

Encuentra el índice de la primera aparición de un carácter o subcadena.

public class BusquedaIndexOf {
    public static void main(String[] args) {
        String str = "Java Programming";
        int indice = str.indexOf("Programming");
        System.out.println(indice);  // Salida: 5
    }
}

Método lastIndexOf()

Encuentra el índice de la última aparición de un carácter o subcadena.

public class BusquedaLastIndexOf {
    public static void main(String[] args) {
        String str = "Java Programming Java";
        int indice = str.lastIndexOf("Java");
        System.out.println(indice);  // Salida: 17
    }
}

Método contains()

Verifica si una cadena contiene una subcadena.

public class Contiene {
    public static void main(String[] args) {
        String str = "Java Programming";
        boolean contiene = str.contains("Programming");
        System.out.println(contiene);  // Salida: true
    }
}

Reemplazo de Substrings

Método replace()

Reemplaza todas las apariciones de un carácter o subcadena por otro.

public class Reemplazo {
    public static void main(String[] args) {
        String str = "Java Programming";
        String resultado = str.replace("Java", "Python");
        System.out.println(resultado);  // Salida: Python Programming
    }
}

Método replaceAll() y replaceFirst()

Permiten reemplazar usando expresiones regulares.

public class ReemplazoRegex {
    public static void main(String[] args) {
        String str = "Java 8 Java 11";
        String resultado = str.replaceAll("Java", "Python");
        System.out.println(resultado);  // Salida: Python 8 Python 11
    }
}

Eliminación de Espacios

Método trim()

Elimina los espacios en blanco al principio y al final de la cadena.

public class Trim {
    public static void main(String[] args) {
        String str = "   Hello World   ";
        System.out.println("." + str + ".");  // Salida: .   Hello World   .
        String resultado = str.trim();
        System.out.println("." + resultado + ".");  // Salida: .Hello World.
    }
}

Métodos strip(), stripLeading() y stripTrailing()

Metodos en Java 11 para eliminar espacios con soporte para Unicode.

public class Strip {
    public static void main(String[] args) {
        String str = "   Hello World   ";
        System.out.println("." + str + ".");  // Salida: .   Hello World   .
        String resultado = str.strip();
        System.out.println("." + resultado + ".");  // Salida: .Hello World.
    }
}

Conclusión

Java ofrece una amplia gama de métodos que facilitan el tratamiento y la modificación de datos textuales. Con las técnicas discutidas, como la extracción de subcadenas, la búsqueda y el reemplazo, así como la eliminación de espacios, puedes optimizar tus aplicaciones y mejorar la interacción con los usuarios. Dominar estas operaciones te permitirá manejar strings de manera más efectiva y te ayudará a enfrentar desafíos comunes en el desarrollo de software.