【发布时间】:2016-06-20 00:35:35
【问题描述】:
我正在尝试使用一个表中的字符串值的 ArrayList,根据字符串是否以“.tif”或“.tiff”结尾来修改字符串,然后将生成的字符串传输到新表。但是,当我调用此方法时,新表只接收第一个修改的字符串。我不确定我的逻辑有什么问题,将检查原始表的第一个元素以查看它是否满足条件(以“.tif”或“.tiff”结尾)然后从那里该字符串将是修改,添加到 ArrayList fData,然后迭代到下一个表值。我不明白为什么该方法不返回 fData 中包含的多个元素?
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;
}
`
【问题讨论】: