17

反正有没有得到 indexOf 就像你会得到一个字符串一样。

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

我写了这段代码,但它返回一个错误而不是编译!有什么建议吗?

4

6 回答 6

62

用这个 ...

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");
于 2011-06-06T09:28:57.380 回答
13

当数组是对象数组时,则:

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

另一种选择是org.apache.commons.lang.ArrayUtils.indexOf(...)它还具有基本类型数组的重载,以及采用起始偏移量的 3 参数版本。(Apache 版本应该更高效,因为它们不需要创建临时List实例。)

于 2011-06-06T09:18:56.540 回答
4

数组没有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");
于 2011-06-06T09:18:22.327 回答
2

你可以使用java.util.Arrays.binarySearch(array, item); 这会给你一个项目的索引,如果有的话......

但是请注意,在搜索之前需要对数组进行排序。

问候

于 2011-06-06T09:36:30.627 回答
2

Java 数组中没有直接的 indexOf 方法。

于 2016-10-19T05:51:45.627 回答
0
output.add("1 2 3 4 5 6 7 8 9 10");

你错过了"10 点之后。

于 2011-06-06T09:22:43.433 回答