2010-11-20 21 views
8

Ho un array:posizione elemento in ordine di

char[] modifiers = {'A', 'M', 'D'}; 

e una variabile:

char a = 'D' 

Come ottenere la posizione del valore della variabile in array?

Grazie

risposta

3

Prova:

int pos = -1; 
for(int i = 0; i < modifiers.length; i++) { 
    if(modifiers[i] == a) { 
    pos = i; 
    break; 
    } 
} 

questo otterrà la primo occorrenza del valore in variabile pos, se ci sono quelli multipli, o -1 se non trovato.

+3

'int pos = -1;' sembra migliore. – khachik

+0

@khachik Ah! Grazie per la cattura! –

0

Iterare attraverso la matrice e confrontare i suoi elementi con la variabile, restituire l'indice, se uguale. Ritorna -1 se non trovato. Potresti prendere in considerazione l'utilizzo di qualsiasi implementazione di java.util.List.

3

Qualcosa sulla falsariga può fare il trucco:

Collections.indexOfSubList(Arrays.asList(array), Arrays.asList('D')) 

Cercando di evitare un ciclo manuale: p

+2

Perché non usare semplicemente 'Arrays.asList (array) .indexOf ('D');'? – st0le

+0

@ st0le dovresti fare una risposta. È la migliore soluzione al problema! – leo

+0

@leo, fatto! :) PADPAD – st0le

2

Si potrebbe farlo da soli abbastanza facilmente, è possibile utilizzare la sort() e binarySearch () metodi della classe java.util.Arrays, oppure è possibile convertire il char [] in una stringa e utilizzare il metodo String.indexOf().

+0

+1. 'new String (modificatori) .indexOf ('D')' è un modo piuttosto conciso per farlo. – Jonik

+0

+1 Approccio intelligente. –

9

Questo è il modo più breve che conosco. Ho avuto questo come commento ma ora lo sto scrivendo come risposta. Saluti!

Carattere [] array = {'A', 'B', 'D'};

Arrays.asList (array) .indexOf ('D');

+0

Beh, questo non funziona. Provalo con i valori dell'OP. Restituisce -1. –

+0

Grande cattura. fisso. L'inizializzazione dovrà essere con Character. – st0le

0

Questo è molto semplice e testati codice per il vostro riferimento

String[] arrayValue = {"test","test1","test2"}; 
int position = Arrays.asList(arrayValue).indexOf("test"); 

position: 0th Position 
Problemi correlati