【发布时间】:2025-12-19 07:35:11
【问题描述】:
我有一个 txt 文件,它是一本书的摘录。我已通过以下方法将文件转换为字符串
File book = new File("WarAndPeace.txt");
chapters = new ArrayList<String>();
FileReader fileReader;
fileReader = new FileReader(book);
BufferedReader bufferedReader = new BufferedReader(fileReader);
StringBuffer stringBuffer = new StringBuffer();
String nextLine;
while ((nextLine = bufferedReader.readLine()) != null) {
stringBuffer.append(nextLine);
stringBuffer.append("\n");
}
fileReader.close();
myBook = stringBuffer.toString();
在文本文件中,每一章都包含在一个卷中。它用“CHAPTER”表示,然后是罗马数字。比如第五章以“CHAPTER V”开头
我需要将字符串分解为多个字符串并将它们全部添加到 ArrayList 中,这样我就可以编写诸如“nextChapter()”“previousChapter”“getChapter(int volumeNumber,int chapterNumber”)之类的函数,它将返回适用的字符串。例如我在想这个;其中的章节是一个 ArrayList
public String nextChapter(){
currentChapter++;
return chapters(currentChapter);
}
如何将书分成章节和卷(一卷包含多个章节)
我是否需要使用与 ArrayList 不同的数据结构,如果需要,使用什么以及如何使用?我听说 HashMap 可以使用键(也许 String 类型包含两个键,章节和卷?)如果是这样,我该怎么做?
谢谢
【问题讨论】:
-
是否也可以更改从文件中读取图书的算法?
-
如何表示一个卷?
-
myBook.split("Chapter [IVX]+\\s+"),也许? -
扩展@Teepeemm 也许
ArrayList<String> chapters = new ArrayList<String>(Arrays.asList(myBook.split("Chapter [IVX]+\\s+")));
标签: java arrays string arraylist