2010-11-20 2 views

ответ

3

Try:

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

Это получит первого вхождения значения в переменной pos, если есть несколько из них, или -1, если не найдено.

+3

'ИНТ поз = -1;' выглядит лучше. – khachik

+0

@khachik Ах! Спасибо за улов! –

0

Итерации по массиву и сравнение его элементов с переменной возвращают индекс, если он равен. Возврат -1, если не найден. Возможно, вы захотите рассмотреть возможность использования любой версии java.util.List.

3

Что-то вдоль линий может сделать трюк:

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

Пытаясь избежать ручного цикла: р

+2

Почему бы просто не использовать 'Arrays.asList (array) .indexOf ('D');'? – st0le

+0

@ st0le, вы должны сделать ответ. Это лучшее решение проблемы! – leo

+0

@leo, сделано! :) PADPAD – st0le

2

Вы можете сделать это самостоятельно достаточно легко, вы можете использовать вид() и BinarySearch () метода класса java.util.Arrays, или вы можете преобразовать char [] в String и использовать метод String.indexOf().

+0

+1. 'new String (модификаторы) .indexOf ('D')' - довольно краткий способ сделать это. – Jonik

+0

+1 Умный подход. – 2010-11-24 01:11:20

9

Это самый короткий путь, который я знаю. У меня было это как комментарий, но теперь я написал это как ответ. Ура!

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

Arrays.asList (массив) .indexOf ('D');

+0

Ну, это не работает. Попробуйте его с помощью значений OP. Он возвращает -1. –

+0

Отличный улов. исправлено. Инициализация должна быть с символом. – st0le

0

Это очень простой и проверенный код для справки

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

position: 0th Position 
Смежные вопросы