2013-03-24 47 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