函数返回空白字符串

时间:2019-05-10 08:54:20

标签: java android sqlite

此函数不断返回空白字符串。

 public String getRandomWord() {
        int id = (int)(Math.random())*(numberOfRows())+1;
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor res =  db.rawQuery( "select word from words where id="+id+"", null );
        String s = "";
        if (res.moveToFirst())
            s = res.getString(res.getColumnIndex("word"));
        res.close();
        return s;
    }

2 个答案:

答案 0 :(得分:2)

返回空字符串的原因是falses(因此您的SQL查询结果为空),并且if块将永远不会运行,因此{{1} }始终保持其初始值""

另一个原因可能是表达式为true,但是res.getString(res.getColumnIndex("word"))返回了空字符串。

答案 1 :(得分:0)

如果您想要一个随机行(单词),请尝试使用:-

public String getRandomWord() {
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor res =  db.rawQuery( "select word from words order by random() limit 1", null );
    String s = "";
    if (res.moveToFirst())
        s = res.getString(res.getColumnIndex("word"));
    res.close();
    return s;
 }

这确实假定表中有行,如果没有,那么您仍然会得到空白结果。