我不知道,为什么我StringIndexOutOfBoundExeption
在这一点上得到一个:
for (int i = start; i < dataList.size() - 6
& dataList.get(i + 1).toString().substring(1).equals(lineNumber)
& !dataList.get(i + 1).toString().substring(1)
.equals("LIST_END"); i += 6)
{
if (!dataList.get(i).toString().contains("null")){
shortList.add(dataList.get(i).toString()); }
else {shortList.add("");}
if (!dataList.get(i+1).toString().contains("null")){
shortList.add(dataList.get(i + 1).toString());}
else {shortList.add("");}
if (!dataList.get(i+2).toString().contains("null")){
shortList.add(dataList.get(i + 2).toString());}
else {shortList.add("");}
if (!dataList.get(i+3).toString().contains("null")){
shortList.add(dataList.get(i + 3).toString()); }
else {shortList.add("");}
if (!dataList.get(i+4).toString().contains("null")){
shortList.add(dataList.get(i + 4).toString()); }
else {shortList.add("");}
这是在一个循环中,它添加了来自 this 的数据ArrayList
:
[null, 00010, 2013, 2.0, null,
等等。如您所见,第一个和第五个元素为空。
当我检查第一个元素时,如果它包含null
,它会抛出异常。当我检查第五个元素时,如果它包含null
,它不包含,并" "
在 UI 中显示一个空字符串。
这是什么原因?
如果我将第一个元素的 if 语句注释掉,我的 UI 会显示null
. (这是来自我的 android 应用程序的代码,TextView
它显示了第一个元素)ArrayList
null
编辑:
对所有评论的回答:
是dataList.size
变量,在本例中为 7
是的,数据来自 SAP 接口,但没有使用游标
添加条件
这是错误消息:
08-14 11:45:01.725: E/Request(18465): java.lang.StringIndexOutOfBoundsException: length=0; index=1 ,指向第一个元素的if条件所在的行
*编辑2:*
再次,指定我的问题:
我遇到:
08-14 11:45:01.725: E/Request(18465): java.lang.StringIndexOutOfBoundsException: length=0; 索引=1
但为什么?我的数组中有数据,如果条件适用于第五个元素,则相同。为什么在第一个if条件下会导致错误(根据我的日志)