¿Qué es Java String indexOf()?

Como desarrollador de Java, debes haberte encontrado con la necesidad de encontrar la posición de un carácter o una subcadena dentro de una cadena. Java proporciona un método integrado llamado indexOf() en la clase String para ayudarnos con esta tarea. El método indexOf() en Java es parte de la clase String , es decir, la clase Java String indexOf() , que se utiliza para manipular cadenas. El método indexOf() en Java devuelve la posición de la primera aparición de un carácter o una subcadena dentro de una cadena determinada. Si no se encuentra el carácter o la subcadena, el método devuelve -1.

// Here is the syntax of the String indexOf():
public int indexOf(int ch)
public int indexOf(int ch, int fromIndex)
public int indexOf(String str)
public int indexOf(String str, int fromIndex)
Profundicemos en las diferentes formas en que podemos usar el método `indexOf()`.

Encontrar la posición de un carácter en la cadena:

Supongamos que tenemos una cadena "¡Hola mundo!" . Para encontrar la posición del carácter 'o' en la cadena, podemos usar el siguiente código:

public class StringIndexOfExample {
    public static void main(String[] args) {
        String str = "Hello, world!";
// We will use Str.indexOf here
        int position = str.indexOf('o');
        System.out.println("Position of 'o' in the string is: " + position);
    }
}

Producción

La posición de 'o' en la cadena es: 4
En el código anterior, primero declaramos una cadena "¡Hola, mundo!" y luego usó el método indexOf() para encontrar la posición del carácter 'o' en la cadena. El método devolvió la posición 4, que es la primera aparición del carácter 'o' en la cadena.

Encontrar la posición de los caracteres en una cadena.

Aquí hay un fragmento de código de ejemplo que demuestra cómo usar el método indexOf() para encontrar la posición de los caracteres en una cadena:

public class StringIndexOfExample {
    public static void main(String[] args) {
        String str = "Hello, world!";
        // We will use Str.indexOf here
        int position = str.indexOf('o');
        
        while (position >= 0) {
            System.out.println("'o' found at position " + position);
            position = str.indexOf('o', position + 1);
        }
    }
}

Producción

'o' encontrada en la posición 4 'o' encontrada en la posición 8
En el código anterior, primero declaramos una cadena "¡Hola, mundo!" y luego usó el método indexOf() para encontrar la posición del carácter 'o' en la cadena. El método indexOf() devuelve la posición de la primera aparición del carácter en la cadena, o -1 si no se encuentra el carácter. Luego usamos un bucle while para continuar buscando el carácter 'o' en la cadena llamando a indexOf() con el carácter y la siguiente posición inicial como argumentos. Repetimos este proceso hasta que indexOf() devuelva -1, lo que indica que no hay más apariciones del carácter en la cadena. En este ejemplo, encontramos que el carácter 'o' aparece en las posiciones 4 y 8 en la cadena "¡Hola, mundo!".

Encontrar la posición de una subcadena en la cadena

Supongamos que tenemos una cadena "Java es un lenguaje de programación popular" . Para encontrar la posición de la subcadena "programación" en la cadena, podemos usar el siguiente código:

public class StringIndexOfExample {
    public static void main(String[] args) {
        String str = "Java is a popular programming language";
        // We will use Str.indexOf here
        int position = str.indexOf("programming");
        System.out.println("Position of 'programming' in the string is: " + position);
    }
}

Producción

La posición de 'programación' en la cadena es: 18
En el código anterior, primero declaramos una cadena "Java es un lenguaje de programación popular" y luego usamos el método indexOf() para encontrar la posición de la subcadena "programación" en la cadena. El método devolvió la posición 18, que es la posición inicial de la subcadena "programación" en la cadena.

Encontrar todas las apariciones de un carácter o subcadena en la cadena

Supongamos que tenemos una cadena "Java es un lenguaje de programación popular. Java se usa ampliamente en el desarrollo web" . Para encontrar todas las apariciones del carácter 'a' o la subcadena "Java" en la cadena, podemos usar el siguiente código:

public class StringIndexOfExample {
    public static void main(String[] args) {
        String str = "Java is a popular programming language. Java is widely used in web development.";

        int position = -1;


        while ((position = str.indexOf('a', position + 1)) != -1) {
            System.out.println("Found 'a' at position: " + position);
        }

        while ((position = str.indexOf("Java", position + 1)) != -1) {
            System.out.println("Found 'Java' at position: " + position);
        }
    }
}

Producción

Se encontró 'a' en la posición: 1 Se encontró 'a' en la posición: 3 Se encontró 'a' en la posición: 8 Se encontró 'a' en la posición: 15 Se encontró 'a' en la posición: 23 Se encontró 'a' en la posición: 31 Se encontró ' a' en la posición: 35 Encontrado 'a' en la posición: 41 Encontrado 'a' en la posición: 43 Encontrado 'Java' en la posición: 0 Encontrado 'Java' en la posición: 40
En el código anterior, primero declaramos una cadena "Java es un lenguaje de programación popular. Java se usa ampliamente en el desarrollo web" y luego usamos el método indexOf() para encontrar todas las apariciones del carácter 'a' o la subcadena "Java". en la cuerda. Usamos un bucle while para iterar sobre todas las apariciones del carácter o subcadena hasta que el método indexOf() devuelve -1, lo que indica que no hay más apariciones del carácter o subcadena en la cadena.

Conclusión

En conclusión, el método indexOf() en Java es una poderosa herramienta para encontrar la posición de un carácter o una subcadena dentro de una cadena. Al utilizar las diferentes variaciones del método, podemos encontrar fácilmente la posición de un carácter o subcadena en una cadena, comenzando desde un índice determinado o encontrando todas las apariciones de un carácter o subcadena. Es un método esencial para cualquier desarrollador de Java que trabaje con cadenas en sus aplicaciones.