1 回答

TA貢獻1893條經驗 獲得超10個贊
首先你的數據結構不好。我建議你創建一個ArrayList<ArrayList<String>>來保存你的數據。將每一行放入一個 ArrayList,然后將 ArrayList 添加到主 ArrayList?,F在數據結構和你上面提到的一樣?;蛘吣梢赃x擇二元數組,例如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”相等。
添加回答
舉報