我试图将一本书分为几章,这本书在文本文件中。到目前为止,我已经尝试了一种效果不佳的方法。

当前,我将每一章存储在字符串数组元素中,因此第一章将存储在元素1中,等等。问题是,这给了我一个出站错误,这是代码:

public void separateChapters(String[] book){
    int x = 2;
    int y = 1;
    String temp = null;
    String ch = "2";
    while (y < 100){
        while (!verses[x].contains(("CHAPTER " + ch))) {//+ Integer.toString(x)

            System.out.println(x);
            System.out.println(y);

            temp = verses[x]+temp;
            chapters[y] = verses[x]+temp; //chapters is a global variable

            x++;
        }
        y++;
        int toIncrement = Integer.parseInt(ch); //jump to next chapter
        toIncrement++;
        ch = Integer.toString(toIncrement);
    }
    System.out.println(chapters[1]);


}


此方法将章节正确存储在每个元素中,但是在将第48章添加到其元素中时,我得到了ArrayIndexOutOfBoundsException。

我知道我的方法不太好,如果有人可以帮助我找出一种更有效的方法,或者更正此方法,将不胜感激。

提前致谢。

最佳答案

我很快尝试了[cache's]方法,并且效果很好,我设法将String分成几章。

public static void main(String[] args) throws IOException {
    // TODO code application logic here
    String book;
    book= readFile("Book.txt",Charset.defaultCharset());

    String[] ch = book.split("CHAPTER");

    System.out.println(ch[2]); //prints chapter two
}
static String readFile(String path, Charset encoding)
    throws IOException
{
    byte[] encoded = Files.readAllBytes(Paths.get(path));
    return new String(encoded, encoding);
}


非常感谢您的帮助,不胜感激。

08-04 23:39