2013-03-24 46 views
-2

我有一个问题java.lang.StringIndexOutOfBoundsException:length = 3;指数= -2如何从ArrayList子串字符串?

我有这样的代码

private static ArrayList<String> array = new ArrayList<String>(); 

for(int i=0; i<array.size(); i++) { 
      String colorPom = array.get(i).toString().substring(array.get(i).toString().length() -5); 
} 

而问题是,在我的阵列中的所有字符串有超过5个字符,我需要得到每个字符串的最后5个字符。但我总是得到这个错误:java.lang.StringIndexOutOfBoundsException:length = 3; index = -2那个长度只有3,但正如我所说的所有字符串都有超过5个字符,我需要得到最后5个。我该怎么做?

回答

0
array.get(i).toString().length() -5 

这导致异常

my array have more than 5 characters and I need to get last 5 characters of each string

但logcat的说:
长度= 3

它清楚地说,你的字符串lenght为3,当你做array.get(i).toString().length() -5它是指数变成负数,因此抛出异常。

尝试检查这样

if(array.get(i).toString().length()>=5) 
{ 
String colorPom = array.get(i).toString().substring(array.get(i).toString().length() -5); 
} 
+0

是的,你说得对,我忘了,真可谓3个字符为一个字符串。 – Adam 2013-03-24 17:50:54