【发布时间】:2015-03-23 05:58:48
【问题描述】:
我有一个 SQLite 数据库,其中一列存储包含数字的字符串。我正在尝试检索数字,将它们作为双精度数存储在数组中,然后取数组的平均值。但是,它不起作用。每次我到达那部分时,应用程序都会崩溃。我知道问题必须在数组中的某个地方,因为我能够将 SQLite 数据库列为字符串。
public int getDataCount() {
String countQuery = "SELECT * FROM " + TABLE_PRODUCTS + " WHERE 1";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
int cnt = cursor.getCount();
cursor.close();
return cnt;
}
public double databaseAverage(){
String dbString = "";
int dbInt = 0;
double dbDouble = 0;
SQLiteDatabase db = getWritableDatabase();
String query = "SELECT * FROM " + TABLE_PRODUCTS + " WHERE 1";
Cursor c = db.rawQuery(query, null);
c.moveToFirst();
int rowCount = getDataCount();
Double[] array = new Double[rowCount];
int i = 0;
while (!c.isAfterLast()) {
if (c.getString(c.getColumnIndex("productname")) != null) {
dbString += c.getString(c.getColumnIndex("productname"));
dbInt = Integer.parseInt(dbString.replaceAll("[\\D]",""));
dbDouble = (double) dbInt;
array[i] = dbDouble;
i++;
}
c.moveToNext();
}
db.close();
double sum = 0;
for(int v=0; v < array.length ; v++) {
sum = sum + array[i];
}
double average = sum / array.length;
return average;
}
【问题讨论】:
-
我忘了在上面提到这一点,但我在 Android Studio 中将它用于 Android 应用项目。
-
请发布您的日志。
-
这是什么意思其中一列存储包含数字的字符串。我正在尝试检索数字,将它们作为双精度数存储在数组中
标签: java android sql arrays sqlite