我试图读取一个文件,并将每两行放入字符串的ArrayList中。我的程序有一个计数器,它从1开始并跟踪行,如果它在第2行,它将执行以下操作:
-
添加名为的字符串的ArrayList
线
转换为名为的二维数组列表
list2D
-
清除
线
使用
.clear()
-
将线路计数器重置为1
因此,我们的想法是将每2行文本存储为字符串的2D ArrayList。以下是预期的输入文件和预期的输出:
INPUT FILE: cat
dog
mouse
duck (every word is on a different line idk why SO put it on the same line)
OUTPUT: [[cat, dog],[mouse, duck]]
但是,当我使用以下命令打印2D ArrayList时
w.println(list2D)
,程序输出空:
[ [ ], [ ] ]
这是我的代码:
ArrayList<ArrayList<String>> list2D = new ArrayList<ArrayList<String>>();
ArrayList<String> lines = new ArrayList<String>();
Integer lineNum = 1;
for (String line = r.readLine(); line != null; line = r.readLine()) {
lines.add(line);
if (lineNum == 2) { //line counter is at the end of block
list2D.add(lines);
lines.clear();
lineNum = 1; //reset line counter
} else {
lineNum++;
}
}
w.println(list2D);
我查过了
other
SO发布了关于如何创建2D ArrayList的帖子,所以我很确定我从for循环中得到的一切都是正确的。当我测试打印时
lines
将ArrayList添加到之前
lines2D
,它会打印出所需的结果(例如[猫,狗]),所以至少在那之前我是正确的。
我也不确定
w.println(list2D)
是正确的打印方法,但我也看到过其他多篇使用这种方法的SO帖子。
任何帮助/批评都很感激,谢谢。