2012-03-22 7 views
0

で文字列の部分文字列を置換しようとすると、私は、この文字列別のサブ

where lowercase(pdd.last_name) like 'albert%' 

を取ると、

sb.replace(queryAdd.indexOf("pdd"), (queryAdd.indexOf("pdd") + 3), "p"); 

どこSBこの機能を使用して、「P」と「PDD」を置き換えるためにしようとしていますStringBufferですが、実際には返されません。

where lowercase(pdpast_name) like 'albert%' 

"pdd"を "p"に置き換えないのはなぜですか?

+0

はい、あります。もう一度質問を読んでください。 – Catfish

答えて

2
StringBuffer s = new StringBuffer("where lowercase(pdd.last_name) like 'albert%'"); 
    s.replace(s.indexOf("pdd"),(s.indexOf("pdd")+3), "p"); 
    System.out.println(s); 

私はあなたのSBとqueryAddが異なるデータを持っていると思います。

+0

あなたは正しいと思います。私はインデックスとしてqueryAdd varを使ってはいけませんでしたが、提案したように私の文字列バッファです。私はこれをあまりにも長い間働くようにしようとしてきました。ありがとう。 – Catfish

1

は、それは私の場合で働いていたこの

String str = "where lowercase(pdd.last_name) like 'albert%'"; 
str = str.replaceFirst("pdd", "p"); 
1

を試してみてください。 (私はこれがあなたがやろうとしているものであると仮定しています)私のコードを見て....

StringBuffer sb = new StringBuffer("where lowercase(pdd.last_name) like 'albert%'"); 
     String queryAdd="where lowercase(pdd.last_name) like 'albert%'"; 
     sb.replace(queryAdd.indexOf("pdd"), (queryAdd.indexOf("pdd") + 3), "p"); 
     System.out.println(sb); 

が出力:where lowercase(p.last_name) like 'albert%'