java.lang.StringIndexOutOfBoundsException
代码:java.lang.StringIndexOutOfBoundsException
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
异常在线程 “主” java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:5 at java.lang.String.substring(String.java:1907) at parserTax.main(parserTax.java:48)
我正在获得所需的10.00 ...但后来失败。这是一个错误?我知道它必须用特殊字符'%'做一些事情......我试图解析一个文件进行分析,任何人都可以帮助我吗?
最有可能的错误是在这个line.-
String parsedRate = rate[i].substring(0, 5);
你试图从位置得到rate[i]
一个subtring 0到5是否检查所有rate
串至少有6个字符?记住输出,看起来第二次出现异常(if
)条件为真(i == 4
),因此rate[4]
可能包含空字符串。
first rate [i] is 10.00% second output is showing the parsed rate [i],but then it fail –
哈哈等待我想我明白你的意思.... jeez谢谢你我即将尝试 –
我猜测率[1]包含10.00,只有5个字符:) – ssantos
我明白错误的含义是什么......我想知道为什么当'%'字符出现时仍然出现错误 –
小提示:您可以替换if(i == 0 | i == 4 | i == 8 | i == 12 | i == 18 | i == 22 | i == 26 | i == 30 | i == 34){'with'if(i%4 == 0 && i> = 0 && i Pshemo