我试图将一本书分为几章,这本书在文本文件中。到目前为止,我已经尝试了一种效果不佳的方法。
当前,我将每一章存储在字符串数组元素中,因此第一章将存储在元素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);
}
非常感谢您的帮助,不胜感激。