我有一个问题 java.lang.StringIndexOutOfBoundsException:length = 3;指数= -2
我有这段代码
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 :(得分:0)
array.get(i).toString().length() -5
这会导致异常
我的数组有超过5个字符,我需要获取每个字符串的最后5个字符
但是logcat说 长度= 3
它清楚地表明当你执行array.get(i).toString().length() -5
时它的字符串长度为3,它的索引变为负数,因此它会抛出异常。
尝试像这样检查
if(array.get(i).toString().length()>=5)
{
String colorPom = array.get(i).toString().substring(array.get(i).toString().length() -5);
}