Explorar indexOf()
para la posición de una subcadena
En el paso anterior, aprendimos cómo verificar si una cadena contiene una subcadena utilizando contains()
. Ahora, exploremos otro método útil, indexOf()
, que no solo nos dice si una subcadena existe, sino que también nos da su posición inicial dentro de la cadena.
El método indexOf()
de la clase String
en Java devuelve el índice dentro de la cadena de la primera aparición de la subcadena especificada. El índice es la posición del primer carácter de la subcadena. Recuerda que en la programación, la indexación generalmente comienza desde 0. Si la subcadena no se encuentra, indexOf()
devuelve -1.
Modifiquemos nuestro archivo Java anterior, StringContains.java
, para utilizar el método indexOf()
.
-
Abre el archivo StringContains.java
en el editor del WebIDE.
-
Reemplaza todo el contenido del archivo con el siguiente código:
public class StringContains {
public static void main(String[] args) {
String sentence = "Java programming is fun and powerful.";
String keyword = "programming";
// Find the index of the keyword
int index = sentence.indexOf(keyword);
System.out.println("Sentence: \"" + sentence + "\"");
System.out.println("Keyword: \"" + keyword + "\"");
if (index != -1) {
System.out.println("The keyword \"" + keyword + "\" was found at index: " + index);
} else {
System.out.println("The keyword \"" + keyword + "\" was not found.");
}
String anotherKeyword = "Python";
int anotherIndex = sentence.indexOf(anotherKeyword);
System.out.println("\nAnother keyword: \"" + anotherKeyword + "\"");
if (anotherIndex != -1) {
System.out.println("The keyword \"" + anotherKeyword + "\" was found at index: " + anotherIndex);
} else {
System.out.println("The keyword \"" + anotherKeyword + "\" was not found.");
}
}
}
En este código actualizado:
- Usamos
sentence.indexOf(keyword)
para encontrar el índice inicial de la keyword
dentro de la sentence
. El resultado se almacena en una variable int
llamada index
.
- Usamos una declaración
if
para verificar si el index
devuelto es -1. Si no es -1, significa que se encontró la palabra clave, y se imprime su índice. De lo contrario, se imprime un mensaje que indica que la palabra clave no se encontró.
- Repetimos el proceso para "Python" para demostrar el caso en el que la subcadena no está presente.
-
Guarda el archivo (Ctrl+S o Cmd+S).
-
Abre la Terminal en la parte inferior del WebIDE.
-
Asegúrate de estar en el directorio ~/project
.
-
Compila el programa Java modificado:
javac StringContains.java
-
Ejecuta el programa Java compilado:
java StringContains
Deberías ver una salida similar a esta:
Sentence: "Java programming is fun and powerful."
Keyword: "programming"
The keyword "programming" was found at index: 5
Another keyword: "Python"
The keyword "Python" was not found.
La salida muestra que "programming" comienza en el índice 5 en la frase (recuerda que 'J' está en el índice 0, 'a' está en el índice 1, y así sucesivamente, incluyendo el espacio). También indica correctamente que "Python" no se encontró.
Usar indexOf()
es una forma poderosa no solo de verificar la presencia de una subcadena, sino también de determinar su ubicación exacta, lo cual puede ser útil para diversas tareas de manipulación de cadenas.