はじめまして、Sugawaraと申します。
SimpleCursorAdapterにデータベースのCursorを渡す前に、
Cursor#queryの結果の一部を削除したいのですが可能でしょうか?
Cursor#moveToNext()で順次カーソルを回して特定条件下で削除しようと思ったのですが、
ドキュメントを読んでもremove()メソッドのようなものはないようで……。
やりたいことは、
データベース指定カラムの中で、「Stringの最初の一行に特定単語があるかのマッチ」をさせたかったのですが、
SQL文で行頭(文頭)マッチのやり方がわからず、
ならカーソル直接削除しよう、と思い立ったところで、壁にぶちあたってしまった次第です。。
SQLで正規表現(^)が使えれば一発なんですが……何か代替方法、小さなヒントでも教えて頂けると助かります!
---------------------------------------------------------------------------------------
String word = "sample";
String where = "hoge like '^%" + sample + "%'"; //←こんなような文頭マッチをしたいです
Cursor cursor = db.query("hoge", "hogeDB", where, null, null, null);
if(cursor.moveToFirst()){
do{
String str = cursor.getString(0).replaceAll("^.*(" + word + ").*$", "$1");
if(str.equals(word)){
// cursor.remove() ができれば言うことないです…
}
}while(cursor.moveToNext());
}
// 以下 SimpleCursorAdapter に cursor セット
---------------------------------------------------------------------------------------
StackOverflowなど海外の掲示板も見たんですが、
Like演算子でがんばれってのが多く……
(自分がわかってないだけで)SQLのSelect文って正規表現ばりの検索が簡単にできるんでしょうか?(^^;