已经编写了一个方法索引,但我如何使用它来查找数组中某个字符串的最后一个实例?
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;
答案 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 ;
}