加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

字符串索引超出范围异常java

发布时间:2020-12-15 07:37:27 所属栏目:Java 来源:网络整理
导读:从我的类中调用函数时出现以下错误: java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1 虽然我使用系统打印来查看我在substring()函数中传递的输入,但一切似乎都是正确的.函数isContained()返回一个布尔值,用于定义作为参数传递的子字符
从我的类中调用函数时出现以下错误:
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)?

如果大小是你的str的长度那么

for (int i = 0; i <= size; i++)

应该是

for (int i = 0; i < size; i++)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读