0
我想從一個表中使用字符串值的ArrayList,基於字符串是否以「.tif」或「.tiff」結尾來修改字符串,然後將結果字符串轉移到新表中。但是,當我調用這個方法時,新表只接收第一個修改過的字符串。我不確定我的邏輯有什麼問題,原始表的第一個元素將被檢查以確定它是否滿足條件(以「.tif」或「.tiff」結尾),然後從那個字符串開始修改後,添加到ArrayList fData中,然後迭代到下一個表值。我不明白爲什麼該方法不會返回fData中包含的多個元素?Java - 在ArrayList中的循環<String>方法只返回一個元素
public ArrayList<String> getTableData() {
StringBuilder str = new StringBuilder();
String fString = null;
ArrayList<String> fData = new ArrayList<String>();
while(filePaths != null) {
int size = filePaths.size();
for (int i = 0; i <= size; i++) {
String pathName = filePaths.get(i);
if (pathName.endsWith(".tif")) {
int pathLength = pathName.length();
str = new StringBuilder(filePaths.get(i));
str.insert(pathLength - 4, "_Data");
fString = str.toString();
fData.add(fString);
tableModel2.addRow(new String[] { fString });
return fData;
}
else if (pathName.endsWith(".tiff")) {
int pathLength = pathName.length();
str = new StringBuilder(filePaths.get(i));
str.insert(pathLength - 5, "_Data");
fString = str.toString();
fData.add(fString);
tableModel2.addRow(new String[] { fString });
return fData;
}
}
tableModel2.fireTableDataChanged();
}
return null;
}
`
哦,我明白了,非常感謝!我對返回語句的理解必須是關閉的,我認爲每次迭代的結果必須返回,以便在下一次迭代之前可以「存儲」它,但這似乎是錯誤的邏輯。 – Rosie