web-dev-qa-db-fra.com

indexOf dans un tableau de chaînes

Est-il possible d'obtenir indexOf comme vous le feriez dans une chaîne? 

output.add("1 2 3 4 5 6 7 8 9 10);  
String bigger[] = output.get(i).split(" ");
int biggerWher = bigger.indexOf("10");

J'ai écrit ce code mais il renvoie une erreur et ne compile pas! Aucun conseil ? 

14
chuck finley

Utilisez ceci ...

output.add("1 2 3 4 5 6 7 8 9 10");  
String bigger[] = output.get(i).split(" ");
int biggerWher = Arrays.asList(bigger).indexOf("3");
59
sgokhales

Lorsque le tableau est un tableau d'objets, alors:

Object[] array = ..
Arrays.asList(array).indexOf(someObj);

Une autre alternative est org.Apache.commons.lang.ArrayUtils.indexOf(...) qui comporte également des surcharges pour les tableaux de types primitifs, ainsi qu'une version à 3 arguments prenant un offset de départ. (La version d'Apache devrait être plus efficace car elle ne nécessite pas de créer une instance temporaire List.)

13
Stephen C

Les tableaux n'ont pas de méthode indexOf(); Cependant, Java.util.List le fait. Vous pouvez donc envelopper votre tableau dans une liste et utiliser les méthodes List (sauf pour add() et autres):

output.add("1 2 3 4 5 6 7 8 9 10");  
String bigger[] = output.get(i).split(" ");
int biggerWhere = Arrays.asList(bigger).indexOf("10");
4
Costi Ciudatu

Vous pouvez utiliser Java.util.Arrays.binarySearch(array, item); Cela vous donnera un index de l'élément, le cas échéant ...

Notez cependant que le tableau doit être trié avant la recherche.

Cordialement

2
Andrew

Il n'y a pas de méthode indexOf directe dans les tableaux Java.

1
abhishek58g
output.add("1 2 3 4 5 6 7 8 9 10");

vous manquez un " après 10. 

0
ChandlerSong