使用substring 方法时指定了错误的参数:如果起始索引或结束索引超出了字符串的长度,或者起始索引大于结束索引,都会触发此异常。 在循环中对字符串进行索引操作时,循环条件设置不当:例如,循环条件设置为 i <= str.length() 而不是 i < str.length(),当 i 等于字符串长度时,将尝试访问不存在的索引。3...
publicStringgetSubstring(String text,int start,int end){// 假设传入的end参数大于字符串的长度returntext.substring(start,end);// 这里可能会抛出StringIndexOutOfBoundsException}publicstaticvoidmain(String[]args){String result=getSubstring("Hello, World!",7,20);// 错误:索引20超出了字符串的长度System...
使用substring()方法来截取字符串的一部分,而不是直接使用索引。 Stringstr="Hello";intstart=1;intend=3;if(start>=0&&end<=str.length()){StringsubStr=str.substring(start,end);System.out.println(subStr);}else{System.out.println("索引越界");} 1. 2. 3. 4. 5. 6. 7. 8. 9. 使用StringBui...
代码示例: publicclassMain{publicstaticvoidmain(String[] args){Stringhtml="这是一段网页内容";try{Stringcontent=html.substring(0,20); System.out.println(content); }catch(StringIndexOutOfBoundsException e) { System.out.println("substring参数错误"); } } } 解释: 在这个例子中,字符串html的长度明显...
String aa = "aaaaaaaaa"; System.out.println(aa.substring(0, 1000)); 这就会报错,这是因为你要截取的字符串不到一千位,所以就抛出来异常了 可以通过判断规避这个异常,简单处理如下 String aa = "aaaaaaaaa"; if(aa.length() > 1000) {
publicclassMain{publicstaticvoidmain(String[] args){Stringstr="Java";Stringsub=str.substring(0,5); } } 对于substring方法,第一个参数是起始索引,第二个参数是结束索引(不包括该索引处的字符)。在这个例子中,字符串"Java"的长度为4,而代码中指定的结束索引为5,超出了字符串的范围,会导致异常。
字符串索引超出范围:-30异常表示您曾经substring()在字符串中返回一个子字符串,长度为29个字符长,第二个参数substring()为负数。所以你的字符串不包含char ']'。你必须做的是while像这样扩展条件:while (commentBody.contains("[~") && commentBody.contains("]")) {  ...
从报错的错误信息来看,substring下标越界了,也就是说本来长度只有4,你程序里出来了长度5的substring就会出现这个问题,再检查检查看看。你
String index out of range: -1 这是越界了,应是str.indexOf("+")出错.String 的indexOf方法返回查找字符在字符串中的位置,但是没找到的话就会返回-1(详细看JDK API文档).所以当找不到指定字符时救会出错了,字符串下标从0到str.length(),来个-1自然越界(substring()方法).最好在处理前做个判断int index...
public void test(){ String str = "h"; String a = "wfe"; System.out.println(str.substring(1));//抛出异常StringIndexBoundsException System.out.println(a.substring(1, 1));//正常显示 System.out.println(a.substring(1, 0));//抛出异常StringIndexBoundsException ...