i已经到了最后一行的末尾了,你再substring(i+1)当然越界了。
给你写了两种方法做你要的这件事情:
String test = "a\nbbb\ncccc\ndddddd\neee";
String line = "";
System.out.println("方法1-------------");
String text = test;
int i = text.indexOf("\n");
while (i >= 0) {
line = text.substring(0, i);
text = text.substring(i + 1);
i = text.indexOf("\n");
System.out.println(line);
}
System.out.println(text);
System.out.println("方法2-------------");
text = test;
String[] lines = text.split("\n");
for (String s : lines) {
System.out.println(s);
}
while循环出来后i的值为text的长度,你再加上1,大于了text的长度,所以抛出IndexOutOfBoundsException