这是我的代码:
String bericht = "";
while (cur.moveToNext()) {
if (cur.getString(cur.getColumnIndex("address")).equals("SAH")) {
bericht += cur.getString(cur.getColumnIndex("body"));
adress = getadress(bericht); //basically cutting a part out
datum = getdatum(bericht); //same
afspraken[x][0] = datum;
afspraken[x][1] = adress;
x++;
}
cur.moveToNext();
bericht = "";
}
它在末尾没有
bericht = "";
的情况下可以工作,但是我想在每个循环中重置字符串!我试过了:
String bericht;
bericht = cur.getString(cur.getColumnIndex("body"));
错误信息:
E/AndroidRuntime(3171): java.lang.StringIndexOutOfBoundsException: length=0; index=2
最佳答案
看来您还是在每次迭代中都重置了字符串。您只需在迭代内声明bericht
即可,因为您无需在外部进行声明。
while (cur.moveToNext()) {
if (cur.getString(cur.getColumnIndex("address")).equals("SAH")) {
String bericht = cur.getString(cur.getColumnIndex("body"));
adress = getadress(bericht); //basically cutting a part out
datum = getdatum(bericht); //same
afspraken[x][0] = datum;
afspraken[x][1] = adress;
x++;
}
cur.moveToNext();
}
同样,问题的核心似乎在于
getadress(bericht);
或getdatum(bericht);
。检查在那里如何处理字符串。