获取某个字符串元素java的最后一个索引?

时间:2014-09-19 14:56:27

标签: java arrays

已经编写了一个方法索引,但我如何使用它来查找数组中某个字符串的最后一个实例?

public int indexOf(String string) {
    if (string == null) {
        throw new NullPointerException();
    }
    for (int index = 0; index < size; index++) {
        if (string.equals(strings[index])) {
            return index;
        }
    }
    return -1;

7 个答案:

答案 0 :(得分:2)

反转循环并从数组末尾开始。

public int indexOf(String string) {
   if (string == null) {
      throw new NullPointerException();
   }
   for (int index = size-1; index >= 0; index--) {
      if (string.equals(strings[index])) {
          return index;
      }
   }
   return -1;
}

答案 1 :(得分:1)

Java字符串也有lastIndexOf方法,您可以使用它。

答案 2 :(得分:1)

String.lastIndexOf

String.lastIndexOf(String str, int fromIndex)

答案 3 :(得分:1)

尝试存储索引并将其返回:

int lastIndex = -1;
for (int index = 0; index < size; index++) {
    if (string.equals(strings[index])) {
        lastIndex = index;
    }
}
return lastIndex;

在这种情况下,Cattwood的回复应该更有效率。

答案 4 :(得分:1)

创建lastIndexOf方法并向后迭代数组。就是这样的 -

public int lastIndexOf(String string) { 
  if (string == null) {
    throw new NullPointerException();
  }
  for (int index = strings.length - 1; index >= 0; index--) {
    if (string.equals(strings[index])) {
        return index;
    }
  }
  return -1;
}

答案 5 :(得分:0)

如果您无法修改方法或创建新方法,则必须反转数组并对其进行操作:

ArrayUtils.reverse(strings);
int reverseIndex = indexOf("myString");
int realIndex = reverseIndex > 0 ? strings.length - (reverseIndex + 1) : -1;
ArrayUtils.reverse(strings); //Back to normal

答案 6 :(得分:-1)

简单回答

获得数组的大小。

ArrayList arry = new ArrayList()<String>;
if(arry!=null) {
int last = arry.legth() -1  ;
//no loop proudly
arr[last];  
return last ;
}