なんでもいいから書くブログ。iPhoneアプリやAndroidアプリといったスマートフォンアプリを開発していこうと考えてはいるが、はたしてどこまでできるか、、とにかく記録していこうと思い書いているブログである。有益な情報はあるかもしれないし、ないかもしれない。
文字列内の特定の文字をある文字に置換する。よくあることだ。
SQLiteを使うアプリだが、Like句による検索をしたい。変数は?でバインドするので、
部分一致させるには、%hoge% のように%パーセントをつける必要がある。
そうすると、'%'の文字が使えなくなるので、今度はエスケープ文字を指定する必要がでてくる。
で、'%'を→'$%'のように置換したい。というのが本題。
SELECT * FROM tablename WHERE colname LIKE '%a$%1%' ESCAPE '$'
(colnameに a%1 を含む行を抽出するSQL)
文字列の置換はこんな感じ
NSMutableString *var = [[NSMutableString alloc]initWithString:@"a%1"];
[var replaceOccurrencesOfString:@"%" withString:@"$%" options:0 range:NSMakeRange(0, [var length])];
a%1 → a$%1 になる
(戻り値は置換回数なので、いらないから指定していない。optionもいらないので0)
バインド変数にかます為には、次のように、元の文字列を加工すればいいかな(エスケープ文字に$を指定した場合)
[var replaceOccurrencesOfString:@"$" withString:@"$$" options:0 range:NSMakeRange(0, [var length])];
[var replaceOccurrencesOfString:@"%" withString:@"$%" options:0 range:NSMakeRange(0, [var length])];
[var replaceOccurrencesOfString:@"_" withString:@"$_" options:0 range:NSMakeRange(0, [var length])];
[var insertString:@"%" atIndex:0];
[var appendString:@"%"];
$→$$, %→$%, _→$_ に置換して、両端に% をつける。これで部分一致の検索用に加工完了!
SQLiteを使うアプリだが、Like句による検索をしたい。変数は?でバインドするので、
部分一致させるには、%hoge% のように%パーセントをつける必要がある。
そうすると、'%'の文字が使えなくなるので、今度はエスケープ文字を指定する必要がでてくる。
で、'%'を→'$%'のように置換したい。というのが本題。
SELECT * FROM tablename WHERE colname LIKE '%a$%1%' ESCAPE '$'
(colnameに a%1 を含む行を抽出するSQL)
文字列の置換はこんな感じ
NSMutableString *var = [[NSMutableString alloc]initWithString:@"a%1"];
[var replaceOccurrencesOfString:@"%" withString:@"$%" options:0 range:NSMakeRange(0, [var length])];
a%1 → a$%1 になる
(戻り値は置換回数なので、いらないから指定していない。optionもいらないので0)
バインド変数にかます為には、次のように、元の文字列を加工すればいいかな(エスケープ文字に$を指定した場合)
[var replaceOccurrencesOfString:@"$" withString:@"$$" options:0 range:NSMakeRange(0, [var length])];
[var replaceOccurrencesOfString:@"%" withString:@"$%" options:0 range:NSMakeRange(0, [var length])];
[var replaceOccurrencesOfString:@"_" withString:@"$_" options:0 range:NSMakeRange(0, [var length])];
[var insertString:@"%" atIndex:0];
[var appendString:@"%"];
$→$$, %→$%, _→$_ に置換して、両端に% をつける。これで部分一致の検索用に加工完了!
PR
Comment form
YamaTatsuのiPhoneアプリ
iTunes Store でみる
Light Off Hot New
点いたライトを素早く消そう!
誰でも遊べるシンプルなゲームです
めいろであそぼう New
かわいいイラストのめいろ、ぬり絵もできる
子供向けの迷路あそびです。※iPad専用
運試し NEW
15連続の確率は0.0001%
操作は簡単 好きなパネルを選ぶだけ。どこまで進めるか運試し!
連打! まだまだ人気
16連射に挑戦
10秒間で何回ボタンを押せるか競うゲームです。
うちメモ ★大人気★
買い物中に 「まだあったかな?」 と思った経験 ありませんか? 「うちメモ」していれば大丈夫!!
Best Bowling
マイボウラーに大人気! ボウリングのスコアを管理するアプリです。
イメージ貯金
貯金はモチベーションが重要! 目標を設定して毎日楽しく貯金しよう!
Mine Escape
聴力は優れていますか? 音で機雷の位置を判断する新感覚のアクションゲーム!
Rank Checker
だって気になるじゃないですか、、 アプリ開発者必須! AppStoreのランキングをチェックツールです。
点いたライトを素早く消そう!
誰でも遊べるシンプルなゲームです
めいろであそぼう New
かわいいイラストのめいろ、ぬり絵もできる
子供向けの迷路あそびです。※iPad専用
運試し NEW
15連続の確率は0.0001%
操作は簡単 好きなパネルを選ぶだけ。どこまで進めるか運試し!
連打! まだまだ人気
16連射に挑戦
10秒間で何回ボタンを押せるか競うゲームです。
うちメモ ★大人気★
買い物中に 「まだあったかな?」 と思った経験 ありませんか? 「うちメモ」していれば大丈夫!!
Best Bowling
マイボウラーに大人気! ボウリングのスコアを管理するアプリです。
イメージ貯金
貯金はモチベーションが重要! 目標を設定して毎日楽しく貯金しよう!
Mine Escape
聴力は優れていますか? 音で機雷の位置を判断する新感覚のアクションゲーム!
Rank Checker
だって気になるじゃないですか、、 アプリ開発者必須! AppStoreのランキングをチェックツールです。
カレンダー
Twitter
プロフィール
最新記事
(05/22)
(04/30)
(03/16)
(03/07)
(02/08)
最新トラックバック
ブログ内検索
忍者アド
アクセス解析