0

我有一个解析文本行的方法,例如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)无处可寻,这意味着,即使它明显存在也没有字符。这个问题只出现在正值上,我不知道为什么。

4

0 回答 0