1 回答

TA贡献1893条经验 获得超10个赞
首先你的数据结构不好。我建议你创建一个ArrayList<ArrayList<String>>来保存你的数据。将每一行放入一个 ArrayList,然后将 ArrayList 添加到主 ArrayList。现在数据结构和你上面提到的一样。或者您可以选择二元数组,例如String[][] arr = new String[10][];.
您将行ArrayList<String> al = new ArrayList<String>();放入for loop, 意味着在每个循环中,您创建一个新的 ArrayList al,因此al每个循环中的数据都是空的。如果要al保留所有数据,则需要ArrayList<String> al = new ArrayList<String>();移出循环。
对于您的代码,when(al.get(t).equals("h") && al.get(t + 1).equals("") && al.get(t + 2).equals(""))为 true,rowNum 为 3,al 为[a, s, d, f, g, h, , ]al.get(rowNum - 1) 为“d”。
当(al.get(t).equals("16") && al.get(t + 1).equals("") && al.get(t + 2).equals(""))为真时,rowNum 为 2,al 为[11, 12, 13, 14, 15, 16, , ]al.get(rowNum -1) 为“12”。
此外,您不al.get(rowNum - 1).contains("11")应该使用 ,al.get(rowNum - 1).equals("11")而应该使用。
=================
for (int t = 0; t < mainArrayList.size(); t++) {
ArrayList<String> row = mainArrayList.get(t);
for (int i = 0; i < row.size(); i++) {
if (row.get(i).equals("h") {
// your code
}
}
}
row是工作表的每一行。您需要循环每一行以检查每个字符串是否与“h”相等。
添加回答
举报