java数组显示乘法结果时出现问题

java数组显示乘法结果时出现问题,java,arrays,for-loop,multidimensional-array,parseint,Java,Arrays,For Loop,Multidimensional Array,Parseint,我试图计算金钱乘以百分比(即$1000*.0.04=$40),然后打印出结果(即$40)。我有一个2D字符串数组保存信息。首先,我想打印每行的百分比,这取决于第一个for循环中显示的某些因素。然后我想在第二个for循环中显示货币时间百分比的结果。我有一个1D双数组,它以小数形式显示百分比,它将与货币相乘以产生结果。我不断收到此错误-->java.lang.ArrayIndexOutOfBoundsException:3 所以我认为1D双数组有问题,但我不知道是什么 FileReader

我试图计算金钱乘以百分比(即$1000*.0.04=$40),然后打印出结果(即$40)。我有一个2D字符串数组保存信息。首先,我想打印每行的百分比,这取决于第一个for循环中显示的某些因素。然后我想在第二个for循环中显示货币时间百分比的结果。我有一个1D双数组,它以小数形式显示百分比,它将与货币相乘以产生结果。我不断收到此错误-->java.lang.ArrayIndexOutOfBoundsException:3
所以我认为1D双数组有问题,但我不知道是什么

    FileReader fr = new FileReader("input.txt");
    BufferedReader br = new BufferedReader(fr);

    //2D array 
    String[][] input = new String[15][4];

    //1D array
    Doubt[] in = new Double[3];

    for(int row=0; row<input.length; row++){
        int a = Integer.parseInt(input[row][1]);
        int b = Integer.parseInt(input[row][2]);
        double s = Double.parseDouble(input[row][3]);

            if(a>=50 && b==1){
                System.out.println(input[row][0] + "\t\t2%");
                in[row]=0.02;
            }
            if(a>=25 && b==1){
                System.out.println(input[row][0] + "\t\t4%");
                in[row]=0.04;
            }
            if((a>=15 && b==1){
                System.out.println(input[row][0] + "\t\t6%");
                in[row]=0.06;
            }
    }

    for(int row=0; row<input.length; row++){
        int a = Integer.parseInt(input[row][1]);
        int b = Integer.parseInt(input[row][2]);
        double s = Double.parseDouble(input[row][3]);

        System.out.println(input[row][0] + "\t\t" + s*in[row]);
    }
FileReader fr=newfilereader(“input.txt”);
BufferedReader br=新的BufferedReader(fr);
//二维阵列
字符串[]输入=新字符串[15][4];
//一维阵列
怀疑[]在=新的双[3];
对于(int行=0;行=50&&b==1){
System.out.println(输入[行][0]+“\t\t2%”;
在[行]中=0.02;
}
如果(a>=25&&b==1){
System.out.println(输入[行][0]+“\t\t4%”;
在[行]中=0.04;
}
如果((a>=15&&b==1){
System.out.println(输入[行][0]+“\t\t6%”;
在[行]中=0.06;
}
}

对于(int row=0;row这可能是因为[]
数组中的
大小为3。但是对于
row=3
这个
in[row]=0.06;
语句将抛出
java.lang.ArrayIndexOutOfBoundsException

因此,将[]
中的
声明为
Double[]in=new Double[input.length];

您正在访问数组中的第三个元素。请注意,
array
的索引以
0
开头。