查找数组的索引

时间:2014-05-05 00:10:43

标签: java indexing

我正在尝试查找数组的索引。我的数组如下:

char[] closingBrackets = { ')', ']', '}', '>' };

当我这样做时:

int i =  openingBrackets.indexOf(']');

int i =  openingBrackets.indexOf(]);

Eclipse给了我一个错误,然后建议我将它更改为opensBrackets.length,这不是我想要的。

在这种情况下,我希望i保持值1,因为它是数组中的第二项。我哪里错了?或者我是否应该使用另一个库来找到它?

3 个答案:

答案 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)。