这是我的代码:

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);。检查在那里如何处理字符串。

07-26 01:05