indexOf в массиве строк - PullRequest
15 голосов
/ 06 июня 2011

В любом случае можно получить indexOf, как если бы вы были в строке.

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

Я написал этот код, но он возвращает ошибку и не компилируется!Любой совет ?

Ответы [ 6 ]

60 голосов
/ 06 июня 2011

Используйте это ...

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");
13 голосов
/ 06 июня 2011

Если массив является массивом объектов, то:

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

Другой альтернативой является org.apache.commons.lang.ArrayUtils.indexOf(...), который также имеет перегрузки для массивов примитивных типов, а также 3версия аргумента, которая принимает начальное смещение.(Версия Apache должна быть более эффективной, поскольку они не влекут за собой создание временного List экземпляра.)

4 голосов
/ 06 июня 2011

Массивы не имеют indexOf() метода;однако java.util.List делает.Таким образом, вы можете заключить свой массив в список и использовать методы List (за исключением add() и т. П.):

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");
2 голосов
/ 06 июня 2011

Вы можете использовать java.util.Arrays.binarySearch(array, item); Это даст вам индекс предмета, если таковые имеются ...

Обратите внимание, однако, что массив должен быть отсортирован перед поиском.

Привет

1 голос
/ 19 октября 2016

В массивах Java нет прямого метода indexOf.

0 голосов
/ 06 июня 2011
output.add("1 2 3 4 5 6 7 8 9 10");

вы пропускаете " после 10.

...