【发布时间】:2014-11-07 06:05:00
【问题描述】:
我正在尝试计算金额乘以百分比(即 $1000*.04 = $40)并打印出结果(即 $40)。我有一个保存信息的二维字符串数组。首先,我想打印每一行的百分比,这取决于第一个 for 循环中显示的某些因素。然后我想在第二个 for 循环中显示金钱时间百分比的结果。我有一个 1D Double 数组,其中包含显示为小数的百分比,该百分比将乘以钱来产生结果。我不断收到此错误 --> java.lang.ArrayIndexOutOfBoundsException: 3
所以我认为 1D Double 数组有问题,但我不知道是什么。
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]);
}
【问题讨论】:
-
您正在访问数组中的第三个元素。请注意
array的索引以0开头。
标签: java arrays for-loop multidimensional-array parseint