Métodos indexOf e lastIndexOf – Busca de caracteres em Strings em Java
Buscar caracteres em Strings em Java com os métodos indexOf e lastIndexOf
Uma tarefa muito comum e importante que realizamos com frequência em uma aplicação é a busca de caracteres em strings. Essa funcionalidade é muito útil, por exemplo, para verificar se um determinado texto ou trecho de texto está presente em um arquivo ou ainda para localizar arquivos em uma lista de arquivos e pastas.
Em Java temos disponíveis para a classe String os métodos indexOf e lastIndexOf, que nos permitem realizar tarefas desta natureza.
- Método indexOf – Permite localizar a primeira ocorrência de uma sequência de caracteres em uma string. Retorna o número de índice onde se inicia a sequência. Opcionalmente, podemos acrescentar um segundo argumento especificando a partir de qual posição de índice iniciar a busca dos caracteres. Ao passar o argumento, use aspas simples ao buscar um caractere individual, e aspas duplas ao buscar uma sequência de caracteres.
Retorna -1 se o caractere não for encontrado. - Método lastIndexOf – Permite localizar a última ocorrência de uma sequência de caracteres em uma string. Retorna o número de índice onde se inicia a sequência. Este método faz a procura de caracteres do final para o início da string. Retorna -1 se o caractere não for encontrado.
Idem ao anterior com relação às aspas simples e duplas.
Exemplos
Vejamos alguns exemplos do emprego desses dois métodos em Java.
String palavra = "Curso de Java da Bóson Treinamentos em Tecnologia"; // Usar indexOf para localizar uma letra na string System.out.printf("A letra \"B\" está localizada na posição de índice %d\n", palavra.indexOf('B')); System.out.printf("A letra \"Q\" está localizada na posição de índice %d\n", palavra.indexOf('Q')); // Usar indexOf para localizar uma letra na string a partir da posição de índice 10: System.out.printf("A letra \"d\" está localizada na posição de índice %d\n", palavra.indexOf('B',10)); // Usar indexOf para localizar uma substring na string System.out.printf("A primeira ocorrência de \"so\" está localizada a partir da posição de índice %d\n", palavra.indexOf("so")); System.out.printf("A palavra \"Java\" está localizada a partir da posição de índice %d\n", palavra.indexOf("Java")); // Usar lastIndexOf para localizar uma substring na string System.out.printf("A última ocorrência de \"so\" está localizada a partir da posição de índice %d\n", palavra.lastIndexOf("so"));
Note que no caso da busca pelo caractere Q foi retornado o valor -1, que indica que esse caractere não foi encontrado na string.
Na próxima lição veremos como extrair uma substring de uma string informando as posições de índice desejadas.
Escreva um comentário