2014-09-19 64 views
0

有一個已經寫好的方法的索引,但是我如何使用它來查找數組中某個字符串的最後一個實例?獲取某個字符串元素java的最後一個索引?

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

'string.equals(字符串[指數])'其中是從哪裏來的? – EvenPrime 2014-09-19 15:05:42

+0

這就是字符串數組:) :) – 2014-09-19 15:11:53

回答

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; 
} 
+0

這是OP想要的嗎?他允許修改方法嗎?.. – dasblinkenlight 2014-09-19 14:59:11

1

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

+0

這適用於字符串,不適用於字符串數組。 – Narmer 2014-09-19 15:13:52

1
String.lastIndexOf 

String.lastIndexOf(String str, int fromIndex) 
+1

這適用於字符串,不適用於字符串數組。 – Narmer 2014-09-19 15:13:33

+0

啊我現在得到它 – 2014-09-19 16:31:10

1

嘗試存儲索引並返回它:

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

從Cattwood的答覆應該是在這種情況下更有效。

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; 
} 
-1

怎麼樣簡單的答案

陣列legth的getthe大小。

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

我認爲這不是OP所要求的。他想要特定字符串的最後一個_ccurence_。 – Narmer 2014-09-19 15:02:10

0

如果不能修改該方法也沒有創建一個新的,你必須扭轉陣列和在反向操作:

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