Explorar indexOf() para a Posição da Substring
Na etapa anterior, aprendemos como verificar se uma string contém uma substring usando contains(). Agora, vamos explorar outro método útil, indexOf(), que não apenas nos diz se uma substring existe, mas também nos fornece sua posição inicial dentro da string.
O método indexOf() na classe String do Java retorna o índice dentro da string da primeira ocorrência da substring especificada. O índice é a posição do primeiro caractere da substring. Lembre-se de que, em programação, a indexação geralmente começa em 0. Se a substring não for encontrada, indexOf() retorna -1.
Vamos modificar nosso arquivo Java anterior, StringContains.java, para usar o método indexOf().
-
Abra o arquivo StringContains.java no editor da WebIDE.
-
Substitua todo o conteúdo do arquivo pelo seguinte 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.");
}
}
}
Neste código atualizado:
- Usamos
sentence.indexOf(keyword) para encontrar o índice inicial de keyword dentro de sentence. O resultado é armazenado em uma variável int chamada index.
- Usamos uma instrução
if para verificar se o index retornado é -1. Se não for -1, significa que a palavra-chave foi encontrada e imprimimos seu índice. Caso contrário, imprimimos uma mensagem indicando que a palavra-chave não foi encontrada.
- Repetimos o processo para "Python" para demonstrar o caso em que a substring não está presente.
-
Salve o arquivo (Ctrl+S ou Cmd+S).
-
Abra o Terminal na parte inferior da WebIDE.
-
Certifique-se de estar no diretório ~/project.
-
Compile o programa Java modificado:
javac StringContains.java
-
Execute o programa Java compilado:
java StringContains
Você deve ver uma saída semelhante 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.
A saída mostra que "programming" começa no índice 5 na frase (lembrando que 'J' está no índice 0, 'a' está no índice 1 e assim por diante, incluindo o espaço). Também indica corretamente que "Python" não foi encontrado.
Usar indexOf() é uma maneira poderosa não apenas de verificar a presença de uma substring, mas também de determinar sua localização exata, o que pode ser útil para várias tarefas de manipulação de strings.