我在java中用substrng()提取某一字符串的子串是老是出现越界的问题,求指教~~~

2025-01-21 11:33:23
推荐回答(2个)
回答1:

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);
}

回答2:

while循环出来后i的值为text的长度,你再加上1,大于了text的长度,所以抛出IndexOutOfBoundsException