Java 异常 : java. lang.StringIndexOutOfBoundsException

标签 java

我每次尝试编译异常时都会遇到代码问题 java.lang.StringIndexOutOfBoundsException 出现。这是有问题的代码我真的不知道我做错了什么。在代码中,我尝试使用某些条件拆分 stringstring 表示多项式。

int[] coef1= new int[20];
for(i=0;i<polinom.length()+1;i++){
    if(polinom.charAt(i)=='+' )
         c=polinom.charAt(i+1);
    else{
       if(polinom.charAt(i)=='^'){
            v=Integer.parseInt(Character.toString(polinom.charAt(i+1)));
            coef1[v]=Integer.parseInt(Character.toString(c));
            System.out.print(coef1[v]);

       }
    }
}
for(i=0;i<polinom.length()+1;i++){
    if(polinom.charAt(i)=='-' )
         c=polinom.charAt(i+1);
    else{
       if(polinom.charAt(i)=='^'){
            v=Integer.parseInt(Character.toString(polinom.charAt(i+1)));
            coef1[v]=-Integer.parseInt(Character.toString(c));
            System.out.print(coef1[v]);

        }
    }
}

这里是异常 if(polinom.charAt(i)=='+' )

最佳答案

只需更换所有

for(i=0;i<polinom.length()+1;i++){

for(i=0;i<polinom.length()-1;i++){

由于索引是从 0 开始的并且您使用 polinom.charAt(i+1),因此 i+1 永远不应等于(也不大于) polinom.length.

或者,如果您希望在字符串的最后一个字符之前进行测试(用于其他处理),您可以确保 polinom.charAt(i+1) 永远不会被触发,如果 i == polinom.length() - 1,在处理你的东西之前添加一个测试:

for(i=0;i<polinom.length();i++){ // not using -1, looping to the end of the string
    if(polinom.charAt(i)=='+' && i < polinom.length() - 1) // checking that no exception will be thrown
        c=polinom.charAt(i+1);
    else{
       if(polinom.charAt(i)=='^' && i < polinom.length() - 1){ // same
           v=Integer.parseInt(Character.toString(polinom.charAt(i+1)));
           coef1[v]=-Integer.parseInt(Character.toString(c));
           System.out.print(coef1[v]);
        }
   }
}

关于Java 异常 : java. lang.StringIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35774671/

相关文章:

java - 如果输入不正确,则不允许用户将数据保存到mysql数据库中

java - 参数太少的 ObjectDB Select 查询

java - 将 Jsoup 元素转换为字符串

java - Checkmarx 修复 CGI_Stored_XSS 漏洞

java - 从哪里获取 Oracle Database 11g Release 2 11.2.0.2.0 及更早版本的 Oracle XML 解析 jar

java - Algotrader 开源项目在 eclipse 中未被识别为 java 项目

java - 多个功能是 logback 标记的良好用例吗?

java - Java中如何统一处理 "Exception or null"的情况?

java - 如何使用 DropBox 和 Eclipse for Java 避免找不到主类和类定义错误

Java 首选项本地安全存储