java - 数组索引越界帮助 (Java)

标签 java arrays error-handling indexoutofboundsexception

这个Java程序做了一个简单的计算,它应该输出123+1的数值

(The output should be 124.) (Ignore the last "+" string.)

我在 if 语句中遇到错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4

我对 arrayz[i-1] 和 arrayz[i+1] 进行了打印输出,它似乎可以接受地打印出 123 和 1,这是正确的。所以,我不确定出了什么问题。

        String math = "123+1+";
        String arrayz[]={"123","+","1","+"};
        double total =0.0;

        int i=0;
        while(i<=(math.length()-1))        //don't bother with the last char
        {       i++;
            if(arrayz[i].equals("+"))
            {
                total = Double.parseDouble((String)arrayz[i-1]) + Double.parseDouble((String)arrayz[i+1]);

            }

        }

        System.out.println(total);

最佳答案

   while(i<=(math.length()-1))  

数学长度为 6,在侧循环中,数组长度为 4

你可能想写

 while(i<=(arrayz.length-1))  

关于java - 数组索引越界帮助 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20811593/

相关文章:

java - 为 Nashorn 脚本引擎定义默认/全局 Java 对象?

java - 这个Java语法是什么意思? (`Class<? extends ContactAccessor> clazz`)

c++ - (C++) 用于检查对象是否在 vector/数组/列表/...中的模板?

python - 忽略错误消息以继续 python 中的循环

java - 一个循环如何由两个线程完成?说由 ist 线程从 count=1 循环到 count=4 并由第二个线程循环 count =5 到 8?

java - 与 python 相比,Java 是否如本示例所示那样是弱类型的?

c# - 功能评估已禁用,VS 2015 中查询 LinQ 执行时出错?

c - 在结构错误中初始化二维数组

sql - 错误(11,1): PLS-00103: Encountered the symbol “DECLARE”

r - 在mutate中使用用户定义的函数时出错