我的代码必须读取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 == 50时,您将丢弃所读取的行,这是一个使其起作用的修复程序。
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();
list.addFirst(newString); // <---- add this line and you should be fine
i = 0;
}
}
for (String s : list)
w.println(s);
}
关于java - ArrayList中的一行没有打印出来,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25881942/