2012-01-19 25 views
2

特殊文字$ ownerを "hr"で置き換える方法と$ table_nameを "hr"で$ constraint_nameを "scma_constraint"で置き換える方法特殊文字とその次の文字列を1つの文字列に置き換える方法

String str = "alter table $owner.$table_name ENABLE constraint $constraint_name;" 
str = str.replace("$owner", "hr") 
    .replace("$table_name", "hr") 
    .replace("$constraint_name", "scma_constraint"); 


"alter table hr.hr ENABLE constraint scma_constraint;" 
+0

String.replace()メソッドを使用します。 – adatapost

+0

- [$サインイン文字列を置換]の可能な複製(http://stackoverflow.com/q/4134316/50776)? – casperOne

答えて

1

String.replace()

String myString = "..."; 
myString = myStrign 
     .replace("$owner", "hr") 
     .replace("$table_name", "hr") 
     .replace("$constraint_name", "blah"); 
1

わからない何をしたいがすると 変更

"alter table $owner.$table_name ENABLE constraint $constraint_name;" 

Javadocはhereが利用可能です。

置き換える()メソッドは、(正規表現のサポートなし)

をnewCharにして、この文字列内にあるすべてのoldCharを交換から生じる新しい文字列を返すでReplaceAll()メソッドは、同じことを行い、しかしのサポートと正規表現。

必要に応じて、より正確に質問を編集します。

0

あなたはすべての一致を置き換えたい場合は、replaceAll()メソッドを使用してreplaceAll()が最初のパラメータとして正規表現を取得し、あなたが"$owner"を書く場合、それはあなたの文字列が"owner"で始めなければならないことを意味しますので、あなたは、ドルなどの特殊文字をエスケープする必要があります。

myString.replaceAll("\\$owner", "hr") 
.replaceAll("\\$table_name", "hr") 
.replaceAll("\\$constraint_name", "scma_constraint"); 
0

StringのreplaceAllメソッドは、このトリックを行う必要があります。まずすべてのキーと値のペアをマップに保存してから、次のようにします。

for each entry in the map 
    myString.replaceAll(entry.key, entry.value) 

実装するにはストレートにする必要があります。

関連する問題