2012-01-19 32 views
2

如何用動態中的「hr」和$ table_name替換爲「hr」和$ constraint_name替換爲「scma_constraint」。 變化如何用一個字符串替換特殊字符及其下一個字符串

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


"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

不知道,你想要什麼,但:

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"); 

的Javadoc可用here

的替換()方法返回從替換此字符串中通過用newChar oldChar的所有出現而產生的新的字符串(不支持的regexp的)

的的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) 

應straigtforward來實現。

相關問題