我有一个解析文本行的方法,例如24/11/2018, Drive, -2.00,
并返回最后一个逗号之前的数字,这种情况是-2
. 这是方法:
public static int value (String line){
//-5 becasue of characters after dot, t1 becomes "24/11/2018, Drive, -2"
String t1= red.substring(0, red.length()-5);
String t2=t1.substring(t1.lastIndexOf(','+1));
return Integer.parseInt(t2);
}
这种方法在处理上述情况下的负值时没有问题,但是当像这条线这样的值为正时,15/11/2018, Tata, 50.00,
我得到了 StringIndexOutOfBoundsException:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException:
String index out of range: -1
at java.lang.String.substring(String.java:1927)
at ParseCSV.vrijednost(ParseCSV.java:30)
at Main.main(Main.java:30)
哪个点在 lineString t2=t1.substring(t1.lastIndexOf(','+1));
上,在 String 类上throw new StringIndexOutOfBoundsException(beginIndex);
。我想这意味着我的开始索引t1.lastIndexOf(','+1)
无处可寻,这意味着,
即使它明显存在也没有字符。这个问题只出现在正值上,我不知道为什么。