¿Cómo usar String.lastIndexOf() en Java para encontrar la última aparición de un carácter?

| Última modificación: 17 de diciembre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Yo soy partidario de que, si una herramienta facilita tu trabajo y te ahorra tiempo, sí o sí debes aprender a usarla. String.lastIndexOf() en Java es una de ellas. Te sorprenderá lo mucho que facilita la extracción de información clave, lo sencillo que se volverá encontrar la última ocurrencia de caracteres o cadenas y ni hablar de cómo optimiza las búsquedas de patrones en grandes textos o logs. Me he propuesto enseñarte a usarlo para que te resulte más sencillo aprender a programar con Java.

String.lastIndexOf() en Java qué es

¿Qué es String.lastIndexOf() en Java?

String.lastIndexOf() en Java es un método que te devuelve la posición de la última aparición de un carácter o una secuencia de caracteres dentro de una cadena. A diferencia de indexOf(), que encuentra la primera coincidencia, lastIndexOf() busca desde el final hacia el principio.

Sintaxis de String.lastIndexOf()

Estas son las formas de usar String.lastIndexOf() en Java:

public int lastIndexOf(String str)
public int lastIndexOf(String str, int fromIndex)
public int lastIndexOf(int char)
public int lastIndexOf(int char, int fromIndex)
  • str: Es la cadena o subcadena que deseas buscar.
  • fromIndex: Se trata de la posición desde donde quieres empezar la búsqueda (hacia atrás).
  • char: Es un carácter específico o su valor Unicode.

Recuerda, si no especificas fromIndex, Java empezará la búsqueda desde el final de la cadena.

¿Qué devuelve?

  • La posición (un número entero) de la última aparición encontrada.
  • -1 si el carácter o la subcadena no existen en el string.

¿Cómo usar String.lastIndexOf() en Java? Aprende con estos ejemplos

Nada mejor que ver String.lastIndexOf() en acción, para que logres entenderlo mejor:

Encuentra la última aparición de un carácter

Para este ejemplo piensa que tienes una frase y quieres encontrar la última letra a:

public class EjemploLastIndexOf {
    public static void main(String[] args) {
        String frase = "Java es un lenguaje de programación";
        int posicion = frase.lastIndexOf('a');
        System.out.println("La última letra 'a' está en la posición: " + posicion);
    }
}

Te queda así la salida:

La última letra 'a' está en la posición: 28

Busca la última aparición de una palabra

En algún momento vas a tener que encontrar la última ocurrencia de una subcadena, como “Java”. Entonces, hazlo así:

public class EjemploLastIndexOf {
    public static void main(String[] args) {
        String frase = "Aprender Java con KeepCoding y disfrutar de Java";
        int posicion = frase.lastIndexOf("Java");
        System.out.println("La última aparición de 'Java' empieza en la posición: " + posicion);
    }
}

Esta es la salida:

La última aparición de 'Java' empieza en la posición: 37

Usa fromIndex para limitar la búsqueda

Lo bueno es que también puedes buscar desde una posición específica hacia atrás, con fromIndex:

public class EjemploLastIndexOf {
    public static void main(String[] args) {
        String frase = "Hola, Hola, Hola, Mundo";
        int posicion = frase.lastIndexOf("Hola", 10);
        System.out.println("La última palabra 'Hola' antes de la posición 10 está en: " + posicion);
    }
}

Mira la salida:

La última palabra 'Hola' antes de la posición 10 está en: 6

Maneja valores inexistentes

¿Cómo manejar algo que no existe? Pues fácil, si el carácter o la subcadena no existen, el método devuelve -1:

public class EjemploLastIndexOf {
    public static void main(String[] args) {
        String frase = "Programación en Java";
        int posicion = frase.lastIndexOf("Python");
        System.out.println("Resultado de la búsqueda: " + posicion);
    }
}

Esta es la salida:

Resultado de la búsqueda: -1

Busca con caracteres Unicode

No olvides que también puedes usar valores Unicode para buscar caracteres especiales:

public class EjemploLastIndexOf {
    public static void main(String[] args) {
        String frase = "¡Hola, programación en Java!";
        int posicion = frase.lastIndexOf(225); // Valor Unicode para 'á'
        System.out.println("La última 'á' está en la posición: " + posicion);
    }
}

Observa la salida:

La última 'á' está en la posición: 17

Consejos a la hora de usar String.lastIndexOf() en Java

Estos son unos consejitos que te servirás para trabajar bien con String.lastIndexOf() en Java:

  1. Valida el resultado: Recuerda que si el método devuelve -1, significa que no encontró ninguna coincidencia.
  2. Combina con indexOf(): Si necesitas encontrar la primera y la última aparición de un elemento, usa ambos métodos.
  3. Especifica fromIndex: Si trabajas con cadenas largas, limitar la búsqueda desde una posición puede mejorar el rendimiento.

De verdad, te aconsejo que no dejes de lado String.lastIndexOf() en Java, porque sirve bastatne para localizar la última aparición de un carácter o una subcadena en un string. Ya te mostré varios ejemplos prácticos para que sepas cómo aplicarlo en distintos escenarios y cómo manejar esos resultados inexistentes. También te recomiendo aprender a usar los hilos en Java para facilitar la ejecución concurrente de tareas.

¿Listo para convertirte en un desarrollador Full Stack Java? En KeepCoding, te ofrecemos un Bootcamp de Java Full Stack que te preparará para trabajar en el sector IT en muy poco tiempo. Aprende con expertos, proyectos reales y todo lo necesario para cambiar tu vida profesional. ¡Inscríbete hoy y empieza a programar tu futuro con KeepCoding!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Java y Spring Boot

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado