2011-01-07 6 views
2

Existe-t-il une fonction similaire à indexof() qui recherchera une chaîne de caractères (de préférence non triée) pour une chaîne et retournera son index? (Ou peut-être coordonner valeur?)

par exemple, je suis en train:java référençant des objets dans un tableau

String[] colours= {"Red", "Orange", "Yellow"}; 

System.out.println("indexOf(Red) = " + 
     colours.indexOf("Red")); 

... mais ayant sans succès.

merci.

AV

p.s. cela devra éventuellement travailler dans un tableau 2d (en cas qui importe)

Répondre

5
String[] colours= {"Red", "Orange", "Yellow", "Green", "Blue", "Violet", "Orange", "Blue"}; 

Arrays.asList(colours).indexOf("Red"); // 0 

OU
si l'ordre n'a pas d'importance alors

Arrays.sort(colours); 
Arrays.binarySearch(colours,"Red");//binary search takes sorted[natural order] array as input 
+0

Ne fonctionne pas. List.get() aura besoin d'un paramètre int et ne recherchera pas le tableau. –

+0

@Toa ah .. 'indexOf' il devrait être –

+0

bianrysearch semble fonctionner – alisdairv

0

Franchement ...

int findString(String[] stringArray;String match) { 
    for (i=0;i<stringArray.length;++i) { 
    if (match.equals(stringArray[i]) return i; 
    } 
} 

va vous faire tout aussi bien. Vous auriez pu écrire cela en moins de temps qu'il n'en fallait pour poser la question.

Questions connexes