我有一個列表如下:如何訪問這些指數
List<String> x = new ArrayList<String>();
x.add("Date : Jul 15, 2010 Income : 8500 Expenses : 0");
x.add("Date : Aug 23, 2010 Income : 0 Expenses : 6500");
x.add("Date : Jul 15, 2010 Income : 0 Expenses : 4500");
我現在想按如下方式訪問這些的indeces:
int index1 = x.indexOf("Date : Aug 23, 2010");
//1
int index2 = x.indexOf("Date : Jul 15, 2010");
//0
int index3 = x.lastIndexOf("Date : Jul 15, 2010");
//2
任何幫助嗎?提前致謝。
這是解決方案,我一直在尋找:
// traverse the List forward so as to get the first index
private static int getFirstIndex(List<String> theList, String toFind) {
for (int i = 0; i < theList.size(); i++) {
if (theList.get(i).startsWith(toFind)) {
return i;
}
}
return -1;
}
// traverse the List backwards so as to get the last index
private static int getLastIndex(List<String> theList, String toFind) {
for (int i = theList.size() - 1; i >= 0; i--) {
if (theList.get(i).startsWith(toFind)) {
return i;
}
}
return -1;
}
這兩種方法將履行正是我wanted.Thanks所有要求!
恐怕你必須通過'List'迭代,並檢查每個項目的正則表達式,或者至少比較子字符串,如果它總是以相同的形式 –
'Map'?它應該有所幫助。 – Nishant
是否有可能用'Date','Income'和'Expenses' getters/setters替換你的'String'類?這將允許更簡潔的代碼。 –