代码:
for(int i = 0; i < rate.length; i++){
if(i == 0 | i == 4 | i == 8 | i == 12 | i == 18 | i == 22 | i == 26 |
i == 30 | i == 34){
System.out.println(rate[i]);
String parsedRate = rate[i].substring(0, 5);
System.out.println(parsedRate);
double rt = Double.parseDouble(parsedRate);
if(rt > max){
max = rt;
}
}
}
输出:
10.00% 10.00
线程“main”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:5 at java.lang.String.substring(String.java:1907) 在parserTax.main(parserTax.java:48)
我得到了理想的10.00 ......但是它失败了。这是一个错误吗?我知道它必须对那个特殊字符'%'做一些事情......我试图解析一个文件进行分析,任何人都可以帮助我吗?
答案 0 :(得分:1)
最有可能的错误就在这一行.-
String parsedRate = rate[i].substring(0, 5);
您正尝试从{0}获取从{0}到第5位的子字符串。您是否检查过所有rate[i]
个字符串至少有6个字符?记住输出,似乎在rate
条件为真(if
)时第二次抛出异常,因此i == 4
可能包含空字符串。