我的代码必须读取 50 行输入并以相反的顺序输出它们,然后是其他 50 行,因此输出从第 50 行开始,到第 1 行,然后从第 100 行开始到第 50 行我让它工作。但唯一的事情是,第 51 行没有打印出来,我不知道出了什么问题。
public static void doIt(BufferedReader r, PrintWriter w) throws IOException {
String newString;
LinkedList<String> list = new LinkedList<String>();
int i = 0;
while ((newString = r.readLine()) != null) {
if (i < 50) {
i++;
list.addFirst(newString);
} else {
for (String s : list)
w.println(s);
list.clear();
i = 0;
}
}
for (String s : list)
w.println(s);
}
最佳答案
按如下方式更改代码:
i++;
list.addFirst(newString);
到
list.addFirst(newString);
i++;
因为您将 newString 添加到列表的方式会跳过一次计数
更新:
抱歉,我必须修正我的答案,而不是删除它。我检查了两次,并根据正确的答案添加了这一行:-)
list.addFirst(newString);
关于java - ArrayList 中的一行未打印出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25881942/