2010-11-20 13 views
8

que tiene una matriz:posición del elemento en la matriz

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

y una variable:

char a = 'D' 

Cómo Obtener la posición del valor de la variable en la matriz?

Gracias

Respuesta

3

Probar:

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

Esto hará que la primera aparición del valor en la variable pos, si los hay múltiples, o -1 si no se encuentra.

+3

'pos int = -1;' ve mejor. – khachik

+0

@khachik ¡Ah! Gracias por la captura! –

0

Iterate a través de la matriz y compara sus elementos con la variable, devuelve el índice, si es igual. Devuelve -1 si no se encuentra. Es posible que desee considerar el uso de cualquier implementación de java.util.List.

3

Algo a lo largo de las líneas puede hacer el truco:

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

Tratando de evitar un bucle Manual: p

+2

¿Por qué no usar 'Arrays.asList (array) .indexOf ('D');'? – st0le

+0

@ st0le deberías hacer una respuesta. ¡Es la mejor solución al problema! – leo

+0

@leo, hecho! :) PADPAD – st0le

2

Se podía hacerlo usted mismo con bastante facilidad, puede utilizar la clase() y busquedaBinaria () métodos de la clase java.util.Arrays, o puede convertir el char [] en una cadena y usar el método String.indexOf().

+0

+1. 'new String (modificadores) .indexOf ('D')' es una forma bastante concisa de hacer esto. – Jonik

+0

+1 Enfoque inteligente. –

9

Esta es la forma más corta que conozco. Tuve esto como un comentario, pero ahora lo escribo como una respuesta. ¡Aclamaciones!

Carácter [] matriz = {'A', 'B', 'D'};

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

+0

Bueno, esto no funciona. Pruébalo con los valores de OP. Devuelve -1. –

+0

Gran captura. fijo. La inicialización deberá ser con Character. – st0le

0

Esto es muy simple y el código probado para su referencia

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

position: 0th Position 
Cuestiones relacionadas