[英]One line in ArrayList isn't printed out
我的代碼必須讀取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);
當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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.