字符串索引超出范围异常Java
从类中调用函数时出现以下错误:java.lang.StringIndexOutOfBoundsException:超出范围的字符串索引:-1尽管我使用系统打印来查看输入的内容,但仍在substring()函数中进行传递似乎是正确的。函数isContained()返回一个布尔值,该值定义作为参数传递的子字符串是否在单词列表中。我的代码是:
for(int i=0; i<=size; i++) for(int j=i+1; j<=size; j++)
if(isContained(str.substring(i,j-i)))
System.out.println(str.substring(i,j-i));
其中size是我在函数中传递的字符串(str)的大小
回答:
您在打电话str.substring(i, j-i)
,意味着substring(beginIndex,
endIndex)不是substring(beginIndex, lengthOfNewString)
。
此方法的一个假设endIndex
是大于或等于beginIndex
,如果不是,则新索引的长度将为负,并且其值将被抛出StringIndexOutOfBoundsException
。
也许您应该更改自己的方法,例如str.substring(i, j)
?
此外,如果size
是你的长度str
,然后
for (int i = 0; i <= size; i++)
应该是
for (int i = 0; i < size; i++)
以上是 字符串索引超出范围异常Java 的全部内容, 来源链接: utcz.com/qa/431705.html