String match = "hello";
String text = "0123456789hello0123456789";
int position = getPosition(match, text); // should be 10, is there such a method?
138
A família de métodos que faz isso é:
Retorna o índice nessa cadeia de caracteres da primeira ( ou última ) ocorrência da substring especificada [pesquisando para frente ( ou para trás ) iniciando no índice especificado].
String text = "0123hello9012hello8901hello7890";
String word = "hello";
System.out.println(text.indexOf(word)); // prints "4"
System.out.println(text.lastIndexOf(word)); // prints "22"
// find all occurrences forward
for (int i = -1; (i = text.indexOf(word, i + 1)) != -1; i++) {
System.out.println(i);
} // prints "4", "13", "22"
// find all occurrences backward
for (int i = text.length(); (i = text.lastIndexOf(word, i - 1)) != -1; i++) {
System.out.println(i);
} // prints "22", "13", "4"
Isso funciona usando regex.
Resultado :
Regra geral :
fonte
Veja o String javadoc
fonte
Localizando um Único Índice
Como outros já disseram, use
text.indexOf(match)
para encontrar uma única correspondência.Localizando Vários Índices
Por causa do comentário do @ StephenC sobre a manutenção do código e minha própria dificuldade em entender a resposta dos @polygenelubricants , eu queria encontrar outra maneira de obter todos os índices de uma correspondência em uma sequência de texto. O código a seguir (que é modificado a partir desta resposta ) faz isso:
fonte
Use string.indexOf para obter o índice inicial.
fonte
Você pode obter todas as correspondências em um arquivo simplesmente atribuindo dentro do while while, legal:
fonte
i
por+1
obras, mas de uma forma bastante indireta. Como você mostrou aqui, ele relata o primeirohello
emi == 1
. É muito mais consistente se você sempre usa a indexação baseada em 0.fonte
fonte
Eu tenho um código grande, mas funcionando muito bem ....
fonte
fonte
fonte
Se você estiver procurando por correspondências 'n' da string de pesquisa, recomendo o uso de expressões regulares . Eles têm uma curva de aprendizado acentuada, mas economizam horas em pesquisas complexas.
fonte
para ocorrência múltipla e o caractere encontrado na string ?? yes or no
fonte
fonte