我正在尝试查找数组的索引。我的数组如下:
char[] closingBrackets = { ')', ']', '}', '>' };
当我这样做时:
int i = openingBrackets.indexOf(']');
或
int i = openingBrackets.indexOf(]);
Eclipse给了我一个错误,然后建议我将它更改为opensBrackets.length,这不是我想要的。
在这种情况下,我希望i保持值1,因为它是数组中的第二项。我哪里错了?或者我是否应该使用另一个库来找到它?
答案 0 :(得分:2)
indexOf是字符串的一种方法。要查看元素所在的位置,循环遍历数组,检查每个值以查看它是否匹配,当您到达它时,返回循环跟踪的数量(int)
int index;
for(int i = 0; i < array.length; i++) {
if(array[i] == ']') {
index = i;
}
}
答案 1 :(得分:1)
阵列没有方法。你可以用
int index = Arrays.asList(closingBrackets).indexOf(']');
提供closingBrackets
被定义为Character
数组
Character[] closingBrackets = { ')', ']', '}', '>' };
答案 2 :(得分:0)
首先,您不能在数组上调用indexOf。我认为你对ArrayList感到困惑。要查找数组中对象的索引,请创建如下方法:(这将要求您将其设为Character [])
public static <E> int indexOf(E[] array, E item) {
for (int i = 0; i < array.length; i++)
if(array[i].equals(item))
return i;
throw new InvalidParameterException("Item not in array.");
}
或者您可以将数组转换为ArrayList&lt; Character&gt;并调用方法indexOf(int)。