【发布时间】:2017-04-23 04:29:08
【问题描述】:
我正在开发一个简单的程序,它可以读取包含书名和相关参考编号的文本文件。每组信息都应转换为 Book 对象,以便以后对其进行排序。但是,在当前代码中,每当创建新 Book 时,它都会重新使用原始 Book。我在 Book 类中添加了一个计数器来跟踪 Book 对象的数量。
程序应该使用书名和相关的参考编号创建一个新的 Book 对象。 为了解决这个问题,我需要更改/添加什么?
主类
private static ArrayList<Book> books = new ArrayList();
public static void main(String[] args) {
String path = "src//booklist.txt";
boolean endOfFile = false;
// try/catch for reading the file
try {
FileReader fr = new FileReader(path);
BufferedReader br = new BufferedReader(fr);
while (!endOfFile) {
String line = br.readLine();
if (line == null) {
endOfFile = true;
} else {
books.add(new Book(null, 0));
books.get(books.size() - 1).setRefNum(Integer.parseInt(line));
String bookTitle = br.readLine();
books.get(books.size() - 1).setTitle(bookTitle);
}
System.out.println(books.get(books.size() - 1).toString());
}
// Closing reader and displaying results
br.close();
} catch (IOException e) {
System.out.println(e.toString());
}
}
}
图书课
private String bookTitle;
private int refNum;
private int numBooks;
public Book(String title, int referenceNumber) {
this.bookTitle = title;
this.refNum = referenceNumber;
this.numBooks++;
}
public String getTitle() {
return this.bookTitle;
}
public void setTitle(String title) {
this.bookTitle = title;
}
public int getRefNum() {
return this.refNum;
}
public void setRefNum(int referenceNumber) {
this.refNum = referenceNumber;
}
public int getNumBooks() {
return this.numBooks;
}
public String toString() {
String message = "Book Title: " + this.bookTitle
+ "\nReference #: " + this.refNum
+ "\nBook #: " + this.numBooks
+ "\n";
return message;
}
文本文档(booktitles.txt)
1
The Adventures of Tom Sawyer
2
Huckleberry Finn
4
The Sword in the Stone
6
Stuart Little
10
Treasure Island
12
The Secret Garden
14
Alice's Adventures in Wonderland
20
Twenty Thousand Leagues Under the Sea
24
Peter Pan
26
Charlotte's Web
31
A Little Princess
32
Little Women
33
Black Beauty
35
The Merry Adventures of Robin Hood
40
Robinson Crusoe
46
Anne of Green Gables
50
Little House in the Big Woods
52
Swiss Family Robinson
54
The Lion, the Witch and the Wardrobe
56
Heidi
66
A Winkle in Time
100
Mary Poppins
电流输出
Book Title: The Adventures of Tom Sawyer
Reference #: 1
Book #: 1
Book Title: Huckleberry Finn
Reference #: 2
Book #: 1
Book Title: The Sword in the Stone
Reference #: 4
Book #: 1
Book Title: Stuart Little
Reference #: 6
Book #: 1
Book Title: Treasure Island
Reference #: 10
Book #: 1
Book Title: The Secret Garden
Reference #: 12
Book #: 1
Book Title: Alice's Adventures in Wonderland
Reference #: 14
Book #: 1
Book Title: Twenty Thousand Leagues Under the Sea
Reference #: 20
Book #: 1
Book Title: Peter Pan
Reference #: 24
Book #: 1
Book Title: Charlotte's Web
Reference #: 26
Book #: 1
Book Title: A Little Princess
Reference #: 31
Book #: 1
Book Title: Little Women
Reference #: 32
Book #: 1
Book Title: Black Beauty
Reference #: 33
Book #: 1
Book Title: The Merry Adventures of Robin Hood
Reference #: 35
Book #: 1
Book Title: Robinson Crusoe
Reference #: 40
Book #: 1
Book Title: Anne of Green Gables
Reference #: 46
Book #: 1
Book Title: Little House in the Big Woods
Reference #: 50
Book #: 1
Book Title: Swiss Family Robinson
Reference #: 52
Book #: 1
Book Title: The Lion, the Witch and the Wardrobe
Reference #: 54
Book #: 1
Book Title: Heidi
Reference #: 56
Book #: 1
Book Title: A Winkle in Time
Reference #: 66
Book #: 1
Book Title: Mary Poppins
Reference #: 100
Book #: 1
期望的输出
Book Title: The Adventures of Tom Sawyer
Reference #: 1
Book #: 1
Book Title: Huckleberry Finn
Reference #: 2
Book #: 2
Book Title: The Sword in the Stone
Reference #: 4
Book #: 3
Book Title: Stuart Little
Reference #: 6
Book #: 4
Book Title: Treasure Island
Reference #: 10
Book #: 5
Book Title: The Secret Garden
Reference #: 12
Book #: 6
Book Title: Alice's Adventures in Wonderland
Reference #: 14
Book #: 7
Book Title: Twenty Thousand Leagues Under the Sea
Reference #: 20
Book #: 8
Book Title: Peter Pan
Reference #: 24
Book #: 9
Book Title: Charlotte's Web
Reference #: 26
Book #: 10
Book Title: A Little Princess
Reference #: 31
Book #: 11
Book Title: Little Women
Reference #: 32
Book #: 12
Book Title: Black Beauty
Reference #: 33
Book #: 13
Book Title: The Merry Adventures of Robin Hood
Reference #: 35
Book #: 14
Book Title: Robinson Crusoe
Reference #: 40
Book #: 15
Book Title: Anne of Green Gables
Reference #: 46
Book #: 16
Book Title: Little House in the Big Woods
Reference #: 50
Book #: 17
Book Title: Swiss Family Robinson
Reference #: 52
Book #: 18
Book Title: The Lion, the Witch and the Wardrobe
Reference #: 54
Book #: 19
Book Title: Heidi
Reference #: 56
Book #: 20
Book Title: A Winkle in Time
Reference #: 66
Book #: 21
Book Title: Mary Poppins
Reference #: 100
Book #: 22
【问题讨论】:
-
你有什么问题?
-
更新帖子,明确提出问题。
-
你有什么问题?
标签: java arrays oop object arraylist