dポイントプレゼントキャンペーン実施中!

以下のような文字列を持っている変数が複数ある状態で、項目Aの条件の部分をフラグが1の場合は’22’、フラグが2の場合は'55'みたいな感じで置換したいのですが、いい方法ありますでしょうか。

String sql1 = "select * from テーブル名 where 項目A = '123' and 項目B = '03' and 項目F = '89' "
String sql2 = "select * from テーブル名 where 項目A = '111' and 項目D = '00' and 項目E = '59' "
String sql3 = "select * from テーブル名 where 項目A = '333' and 項目E = '02' and 項目G = '49' "
String sql4 = "select * from テーブル名 where 項目A='555' and 項目B = '01' and 項目C = '99' "

項目A = の部分は=の前後の空白は1つだったり、2つだったりとバラバラな状態となりますので、以下のようにもできず。(文字列に入っているSql文は修正できません)

if(flg==1){
sql1.replace("項目A = "123","項目A = "22")
}else if(flg==2){
sql1.replace("項目A = "123","項目A = ''55")
}

A 回答 (2件)

String#replaceFirst/String#replaceAllで可能でしょう。


両者ともJavaではムチャクチャ多用されるので是非覚えましょう。

この手のサイトで正規表現を学んで下さい。
置換だけならたいして難しくないし
やれることが飛躍的広がるのでお勧めです。
https://engineer-club.jp/java-string-replaceall
    • good
    • 0

こんばんは



javaはまったく知りませんけれど・・・

空白の数だけの問題なら、簡単な正規表現のreplaceで可能なのでは??
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!