Le code suivant imprimera 2
Ssortingng word = "bannanas"; Ssortingng guess = "n"; int index; System.out.println( index = word.indexOf(guess) );
Je voudrais savoir comment obtenir tous les index de “n” (“guess”) dans la chaîne “bannanas”
Le résultat attendu serait: [2,3,5]
Cela devrait imprimer la liste des positions sans les -1
à la fin de la solution de Peter Lawrey .
int index = word.indexOf(guess); while (index >= 0) { System.out.println(index); index = word.indexOf(guess, index + 1); }
Cela peut aussi être fait comme une boucle:
for (int index = word.indexOf(guess); index >= 0; index = word.indexOf(guess, index + 1)) { System.out.println(index); }
[Note: si guess
peut être plus long qu’un seul caractère, il est possible, en analysant la chaîne de guess
, de parcourir le word
plus rapidement que les boucles ci-dessus. La référence pour une telle approche est l’ algorithme de Boyer-Moore . Cependant, les conditions qui favoriseraient l’utilisation d’une telle approche ne semblent pas être présentes.]